前言
记录下leetcode每日一题
题目描述
给定两个字符串, s 和 goal。如果在若干次旋转操作之后,s 能变成 goal ,那么返回 true 。
s 的 旋转操作 就是将 s 最左边的字符移动到最右边。
例如, 若 s = 'abcde',在旋转一次之后结果就是'bcdea' 。
示例1
输入: s = "abcde", goal = "cdeab"
输出: true
示例2
输入: s = "abcde", goal = "abced"
输出: false
提示
1 <= s.length, goal.length <= 100s和goal由小写英文字母组成
思路
- 首先判断当前s和goal的字符串长度是否相同,如果不相同,那么一定无法通过旋转得到
- 可以将s后面继续累加s 得到的是s可能会出现的所有子项
- 只要查找goal是否是子项即可
代码
/**
* @param {string} s
* @param {string} goal
* @return {boolean}
*/
var rotateString = function (s, goal) {
if (s.length !== goal.length) return false
return (s + s).indexOf(goal) !== -1
};
最后
每天进步一点点