判斷翻轉子串

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

相關文章
相關標籤/搜索