Python 字符串旋转判断:高效算法实现
Python 字符串旋转判断:高效算法实现
给定两个字符串 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 翻转两次,得到 s_s,然后判断 s_s 是否包含 goal 字符串,如果包含则返回 True,否则返回 False。
代码实现:
def rotateString(s: str, goal: str) -> bool:
if len(s) != len(goal):
return False
s_s = s + s
if goal in s_s:
return True
return False
测试样例:
s = 'abcde'
goal = 'cdeab'
print(rotateString(s, goal)) # 输出 True
s = 'abcde'
goal = 'abced'
print(rotateString(s, goal)) # 输出 False
解释:
该算法首先判断两个字符串的长度是否相等,如果不相等则直接返回 False。
然后将 s 重复连接一次,得到 s_s。如果 goal 在 s_s 中,则说明 s 可以通过旋转操作变成 goal,返回 True,否则返回 False。
总结:
本算法通过字符串拼接和包含判断,实现了高效的字符串旋转判断功能。代码简洁易懂,易于理解和使用。
原文地址: https://www.cveoy.top/t/topic/pkNN 著作权归作者所有。请勿转载和采集!