/* * 判断s2能否由s1旋转得到 * 已知isSunString函数,但只能调用一次 * 思路:s1=xy; s2=yx;令s1=s1+s1=xyxy;则s2必为s1的子串 */ import java.util.Scanner; public class RotateString { static boolean isSubString(String s1,String s2){ //也可以用KMP来判断,暂时写不出来额 for(int i=0;i<s1.length()/2;i++){ for(int j=i+s2.length();j<s1.length();j++){ //public String substring(int beginIndex, int endIndex) //返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。 //因此,该子字符串的长度为 endIndex-beginIndex。 String subStr=s1.substring(i,j); if(subStr.equals(s2)) return true; } } return false; } public static void main(String[] args) { String s1,s2; System.out.println("Please input s1:"); Scanner cin=new Scanner(System.in); s1=cin.next(); s1=s1+s1; while(true){ System.out.println("Please input a string:"); s2=cin.next(); if(s2.equals("0")) break; if(s2.length()!=s1.length()/2){ System.out.println("No"); continue; } if(isSubString(s1,s2)){ System.out.println("Yes"); } else{ System.out.println("No"); } } } } /*Test Please input s1: waterbottle Please input a string: erbottlewat Yes Please input a string: water No*/
判断字符串s2能否由s1旋转得到
时间: 2024-10-08 08:19:32