假定有一個方法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)); } }