假定有一个方法isSubstring,可检查一个单词是否为其余字符串的子串。给定两个字符串s1,s2,请编写代码检查s2是否为s1旋转而成,要求只能调用一次isSubstringui
好比waterbottle是erbottlewat旋转后的字符串字符串
解法:string
假定s2由s1旋转而成,那么,咱们就能够找出旋转点在哪,例如,若以wat对waterbottle旋转,就会获得erbottlewat.在旋转字符串时,咱们会把s1切分红两部分:x和y,并将它们从新组合成s2io
s1=xy=waterbottleclass
x=wat方法
y = erbottlestatic
s2=yx=erbottlewat字符
所以,咱们须要确认有没有办法将s1切分红x和y,以知足xy=s1和yx=s2。不论x和y之间的分割点在何处,咱们会发现yx确定是xyxy的子串,也即s2老是s1s1的子串分割
package cglib;return
public class StringNumber { public boolean isRotation(String s1,String s2){ int len = s1.length(); if(len == s2.length() && len >0){ String s1s1= s1+s1; return isSubstring(s1s1,s2); } return false; } public static void main(String[] args) { String str1="qwertyu"; String str2="wertyui"; System.out.println(isRotation(str1,str2)); } }