1、方法
字符串(或者数组)的循环后移指的是,将每一个元素都往后移,后面没有空间时,添加到开头。例如字符串abcdef循环后移1位为fabcde,后移2位得到efabcd,后移3位得到defabc…
将字符串后移k位的方法:
- 整个字符串逆置;
- 前k个逆置;
- 后面剩余的也逆置;
使用额外空间的方法:
- 将字符串复制一份放到后面:abcdefabcdef;
- 截取其中的一个子串[l-k, 2l-k),其中l为原字符串的长度。
2、应用
判断一个字符串是否是周期串。
所谓周期串就是形如:strstrstr…这样的字符串,其中str是一个子串,至少要重复出现2次。
假设周期串的周期为t(子串str的长度),则周期串循环后移t位,仍然和自己是相同的。