码迷,mamicode.com
首页 > 其他好文 > 详细

判断字符串s2能否由s1旋转得到

时间:2014-05-21 16:30:55      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:笔试   算法   java   

/*
 * 判断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旋转得到,布布扣,bubuko.com

判断字符串s2能否由s1旋转得到

标签:笔试   算法   java   

原文地址:http://blog.csdn.net/dutsoft/article/details/26394935

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!