牛客网题库_旋转词问题

牛客网题库_旋转词问题

img


解题思路:将从键盘输入的a,b两个字符串,通过java的

img


函数将其转换为两个数组,利用for循环从b对应的数组中找到与a[0]相同的字符,然后记录a对应数组的指针下标0,记录b对应数组的下标,
然后遍历a,b对应的数组进行比对,并将指针进行移动,如果有一个不对应则返回false,如果遍历结束,全部对应则
返回true。

问题是?


import java.util.Scanner;

public class SpinWords {
    public static void main(String[] args) {
        System.out.println("------牛客网旋转词问题-------\n从键盘输入两个字符串a和b,判断a和b是否互为旋转词:");
        Scanner sc = new Scanner(System.in);
        String a = sc.next();
        String b = sc.next();
        boolean spinWords = isSpinWords(a, b);
        System.out.println(spinWords);
    }
    public static boolean isSpinWords(String a,String b){
        char[] arr_a = a.toCharArray();
        char[] arr_b = b.toCharArray();
        int index_a=0;
        int index_b=0;
        boolean result=true;
        for(int i=0;i<arr_a.length;i++){
            if(arr_a[0]==arr_b[i]){
                index_b=i;
                break;
            }
        }
        for(int i=0;i<arr_a.length;i++){
            if(arr_a[i]!=arr_b[index_b]){
                 result=false;
                 break;
            }
            index_b=((index_b+1)%arr_b.length);
        }
        return result;
    }
}