String 计算字符串的循环移位

String 计算字符串的循环移位,string,cyclic,string-algorithm,String,Cyclic,String Algorithm,我需要编写一个函数,该函数将返回输入字符串可能的不同循环移位数 你能给我一些建议,让我从哪里开始创建一个高效的(时间复杂度方面的)算法吗?我应该从“预处理”字符串开始,并创建一些数据结构来帮助以后计算移位吗?只需将字符串连续存储两次,例如: "this_is_my_longish_stringthis_is_my_longish_string" ^ ^ | | |<-str

我需要编写一个函数,该函数将返回输入字符串可能的不同循环移位数


你能给我一些建议,让我从哪里开始创建一个高效的(时间复杂度方面的)算法吗?我应该从“预处理”字符串开始,并创建一些数据结构来帮助以后计算移位吗?

只需将字符串连续存储两次,例如:

"this_is_my_longish_stringthis_is_my_longish_string"
     ^                       ^
     |                       |
     |<-string length apart->|
“这是我的长字符串这是我的长字符串”
^                       ^
|                       |
||

然后将第一个字符串的两个索引“stringlength-aparted”沿着该双字符串从开始移动到结束,每次都返回中间字符串。或者,您可以自己解决家庭作业问题。

只需将字符串连续存储两次,例如:

"this_is_my_longish_stringthis_is_my_longish_string"
     ^                       ^
     |                       |
     |<-string length apart->|
“这是我的长字符串这是我的长字符串”
^                       ^
|                       |
||
然后将第一个字符串的两个索引“stringlength-aparted”沿着该双字符串从开始移动到结束,每次都返回中间字符串。或者,你可以自己解决家庭作业问题