力扣(LeetCode)796

題目地址:
https://leetcode-cn.com/probl...
題目描述:
給定兩個字符串, A 和 B。java

A 的旋轉操做就是將 A 最左邊的字符移動到最右邊。 例如, 若 A = 'abcde',在移動一次以後結果就是'bcdea' 。若是在若干次旋轉操做以後,A 能變成B,那麼返回True。code

示例 1:
輸入: A = 'abcde', B = 'cdeab'
輸出: trueleetcode

示例 2:
輸入: A = 'abcde', B = 'abced'
輸出: false
注意:字符串

A 和 B 長度不超過 100。get

解答:
方法一:能夠把字符串A左移A.length()-1次,若是有一次移動完和B相同,那麼就返回true,不然返回false,可是這樣的較慢,由於左移自己就是一個耗時操做。
方法二:由於若是B是A左移後變成的字符串,那麼B必然在A+A這個字符串中出現,那麼咱們只須要判斷B是否出如今A+A這個字符串中便可。我使用方法二來解這個題。
java ac代碼:string

class Solution {
    public boolean rotateString(String A, String B) {
     
        if(A.length() != B.length())return false;
        return (A+A).indexOf(B) != -1;
    }
}
相關文章
相關標籤/搜索