Category | Difficulty | Likes | Dislikes |
---|
algorithms | Easy (63.30%) | 282 | - |
Tags
math
Companies
Unknown
给定两个字符串, s
和 goal
。如果在若干次旋转操作之后,s
能变成 goal
,那么返回 true
。
s
的 旋转操作 就是将 s
最左边的字符移动到最右边。
- 例如, 若
s = 'abcde'
,在旋转一次之后结果就是'bcdea'
。
示例 1:
1
2
| 输入: s = "abcde", goal = "cdeab"
输出: true
|
示例 2:
1
2
| 输入: s = "abcde", goal = "abced"
输出: false
|
提示:
1 <= s.length, goal.length <= 100
s
和 goal
由小写英文字母组成
Discussion | Solution
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| // @lc code=start
impl Solution {
/// ## 解题思路
/// - 将a复制一倍为aa;
/// - 如果aa包含b,则b必定为a的旋转字符串;
pub fn rotate_string(a: String, b: String) -> bool {
a.len() == b.len() && a.repeat(2).contains(b.as_str())
}
}
// @lc code=end
use super::*;
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test() {
assert_eq!(
Solution::rotate_string("abcde".into(), "cdeab".into()),
true
);
assert_eq!(
Solution::rotate_string("abcde".into(), "abced".into()),
false
);
}
}
|