首页 > 代码库 > 判断字符串s2能否由s1旋转得到
判断字符串s2能否由s1旋转得到
/* * 判断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*/
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。