LeetCode 796題 旋轉字串 -- JavaScript
阿新 • • 發佈:2018-12-17
題目描述:
給定兩個字串, A
和 B
。
A
的旋轉操作就是將 A
最左邊的字元移動到最右邊。 例如, 若 A = 'abcde'
,在移動一次之後結果就是 'bcdea'
。如果在若干次旋轉操作之後,A
能變成 B
,那麼返回 true
。
示例 :
輸入: A = 'abcde', B = 'cdeab' 輸出: true
輸入: A = 'abcde', B = 'abced' 輸出: false
注意:
A
和B
長度不超過100
。
方法分析:
該題從定義出發。A的旋轉字串即依次將A最左邊的字元移動到最右邊即可。那麼A一共有多少個旋轉字串呢?應該是A.length個(包括A自身)。把所有A
程式碼實現:
var rotateString = function(A, B) {
let len = A.length;
let result = [A];
for(let i = 0;i < len - 1;i++){
A = A.slice(1) + A[0];
result.push(A);
}
return result.includes(B);
};
還有一種簡便的方法:
var rotateString = function(A, B) { if(A.length != B.length) return false; return A.repeat(2).includes(B); };