在标准中,“初始移位状态”一词经常被引用,似乎也出现在不同的上下文中,例如多字节字符(字符串)和文件。但标准漏掉了对具体内容的解释。由于我的术语似乎在不同的上下文中使用(字符上下文、字符串上下文和文件上下文),我将指出标准中的几个文本短语(特别是ISO/IEC:9899/2018 (C18)),其中包括“初始移位状态”一词:-标识符、注释、字符串文字、字符常量或标题名称应以初始移位状态开头和结尾。§7.21.6.2 - f
问题是计算给定字符串的同构循环移位数。循环移位是初始字符串的转换,例如if 0 <= k < n (其中n是字符串的长度):cyclicShift(k) = s[k-1]...s[n-1]s[0]...s[k] if k > 0
如果循环移位等于初始字符串,则说它是同构的。我有一种感觉,一根线可以有这样的循环移位,如果它包含一个模式的重复,但我不能证明它。如果是这样的话,那么问题就变成了找到这个