### 题目描述 给定两个字符串, 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 <= 100 - s 和 goal 由小写英文字母组成 ### 题目解答 #### 题目思路 采用拼接字符串的方式,拼接完成后,从长度为s.length得到一个长度为2*s.length的字符串。此时,就无需再考虑循环的问题。 #### 代码实现 ```python class Solution: # 方法1 # def rotateString(self, s: str, goal: str) -> bool: # if len(s) != len(goal): # return False # for i in range(len(s)): # if s[i:] + s[:i] == goal: # return True # return False # 方法2 def rotateString(self, s: str, goal: str) -> bool: return len(s) == len(goal) and goal in (s + s) ``` 最后编辑:2024年04月23日 ©著作权归作者所有 赞 0 分享
最新回复