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
.struct Solution;
impl Solution {
fn rotate_string(a: String, b: String) -> bool {
if a.len() != b.len() {
return false;
}
let mut c = "".to_string();
c += &a;
c += &a;
c.contains(&b)
}
}
#[test]
fn test() {
let a = "abcde".to_string();
let b = "cdeab".to_string();
assert_eq!(Solution::rotate_string(a, b), true);
let a = "abcde".to_string();
let b = "abced".to_string();
assert_eq!(Solution::rotate_string(a, b), false);
}