【原題目】:

We are given two strings, A and B.

A shift on A consists of taking string A and moving the leftmost character to the rightmost position. For example, if A = 'abcde', then it will be 'bcdea' after one shift on A. Return True if and only if A can become B after some number of shifts on A.

Example 1:
Input: A = 'abcde', B = 'cdeab'
Output: true

Example 2:
Input: A = 'abcde', B = 'abced'
Output: false

Note:

  • A and B will have length at most 100.

 

參考 : https://leetcode.com/problems/rotate-string/

【My Solution】:

1.PNG

我的解法相當直覺,就先將字串第一個字元抓出來,然後把第一個字元以後的字串取成子字串

再把第一個字元加到子字串最後面,再判斷是否與B一樣,如此在跑完一個O(n)的迴圈後就能找出答案

我看到有高手用一行就解出此題目,以下提供參考

return A.length() == B.length() && (A + A).contains(B);
arrow
arrow
    文章標籤
    LeetCode java Rotate String
    全站熱搜

    Mark Zhang 發表在 痞客邦 留言(0) 人氣()