给定两个字符串, A 和 B。A 的旋转操作就是将 A 最左边的字符移动到最右边。 例如, 若 A ='abcde',在移动一次之后结果就是'bcdea' 。如果在若干次旋转操作之后,A 能变成B,那么返回True。
共两行,第一行代表字符串A,第二行代表字符串B。且A和B的长度不超过100。A和B只包含大写、小写英文字符。
一行字符串,"True"代表能够通过旋转得到,"False"代表不能通过旋转的到
abcde cdeab
True
abcde abced
False
import java.util.*; public class Main{ public static void main(String[] args){ Scanner input=new Scanner(System.in); String s1=input.nextLine(); String s2=input.nextLine(); boolean b=false; for(int i=0;i<s1.length();i++){ s1=getStr(s1); if(s1.equals(s2)){ b=true; break; } } if(b) System.out.println("True"); else System.out.println("False"); } private static String getStr(String s){ return s.substring(1)+s.charAt(0); } }
import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String firstStr = scanner.nextLine(); String sencondStr = scanner.nextLine(); scanner.close(); boolean flag = false; for (int i = 0; i < firstStr.length(); i++) { String tmp = firstStr.substring(1); String firstZimu = firstStr.substring(0,1); String convertStr = tmp + firstZimu; firstStr = convertStr; if (sencondStr.equals(convertStr)) { flag = true; break; } } if (flag) { System.out.println("True"); } else { System.out.println("False"); } } }