如何在Java中使用函数来判断两个字符串是否为互为旋转字符串?
发布时间:2023-07-06 03:16:14
要判断两个字符串是否互为旋转字符串,我们可以使用以下的步骤:
1. 首先,我们需要判断两个字符串的长度是否相等,如果不相等,则它们一定不互为旋转字符串。可以使用String类的length()方法来获取字符串的长度,并使用if语句进行判断。
2. 接下来,我们可以将字符串拼接一次,然后判断其中一个字符串是否是另一个字符串的子串。可以使用String类的concat()方法将字符串拼接起来,并使用String类的indexOf()方法来查找子串的索引,如果返回值大于等于0,则说明一个字符串是另一个字符串的子串。
3. 如果上述步骤的判断条件都满足,则说明两个字符串是互为旋转字符串。
下面是一个具体的示例代码:
public class Main {
public static void main(String[] args) {
String str1 = "hello";
String str2 = "llohe";
if (isRotationString(str1, str2)) {
System.out.println("两个字符串互为旋转字符串");
} else {
System.out.println("两个字符串不互为旋转字符串");
}
}
public static boolean isRotationString(String str1, String str2) {
// 判断字符串长度是否相等
if (str1.length() != str2.length()) {
return false;
}
// 将字符串拼接起来,并判断其中一个字符串是否是另一个字符串的子串
String concatStr = str1 + str1;
if (concatStr.indexOf(str2) >= 0) {
return true;
} else {
return false;
}
}
}
以上代码运行的结果是"两个字符串互为旋转字符串"。因为"hello"和"llohe"可以从"hellohello"中得到。
注意:这种方法的时间复杂度是O(n),其中n是字符串的长度。
