欢迎访问宙启技术站
智能推送

如何在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是字符串的长度。