如果对于一个字符串A,将A的前面任意一部分挪到后边去形成的字符串称为A的旋转词。比如A="12345",A的旋转词有"12345","23451","34512","45123"和"51234"。对于两个字符串A和B,请判断A和B是否互为旋转词。
方案:A做自身的叠加;然后判断B是否是其子串。
例如:
A=12345
B=23451
2A=1234512345
包含了B
所以两者互为旋转词。
这个问题有点循环链表的感觉。巧妙在于A自身叠加后,就一定可以包含其旋转串的区间。
tip: 可以先判断两串长度是否相等快速判断不等。
网友评论