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 andB will have length at most100 .
想法如下
- 因為是 shift 的方式來產生不同字串,所以新字串一定會是 A+A 這個字串裡面的 substring
- 首先,檢查長度是不是相同,不同,那一定不可能。相同,再檢查 B 是不是 A+A 裡面的子字串
code 如下
Java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Solution { | |
public boolean rotateString(String A, String B) { | |
if(A.length() != B.length()) { | |
return false; | |
} | |
final String aa = A+A; | |
return aa.contains(B); | |
} | |
} |
沒有留言:
張貼留言