题目:
如果一个字符串为str,把str前面任意部分挪到后面形成的字符串叫做str的旋转词。
如 str='12345' str 的旋转词有 '12345' '23451' '34512' '45123' '51234'。给定两个字符串,判断他们是否互为旋转词。
举例:
a="cdab" b="abcd" 返回true
a="1ab2" b="ab12" 返回false
思路:
把 两个b 字符串拼在一起, String str = b + b,如果str 中包含字符串 a ,就说明字符串 a b 互为旋转词,否则说明两个字符串不互为旋转词。
代码实现:
public static boolean isRotation(String a, String b) {
if (a == null || b == null || a.length() != b.length()) {
return false;
}
String str = b + b;
if (str.contains(a)) {
return true;
} else {
return false;
}
}
(待补充)这里在进行判断过程中可以使用KMP算法解决: