在 Python 中旋转字符串
pythonserver side programmingprogramming更新于 2025/11/2 4:28:17
假设我们有两个字符串,A 和 B。我们将旋转字符串 A 并检查它在旋转的任何位置是否与 B 匹配,如果匹配则返回 true,否则返回 false。例如,如果 A = 'abcde',且 B = 'bcdea' 那么答案将为 true,因为 A 可以在旋转后转换为 B。
为了解决这个问题,我们将遵循以下步骤 −
- 当 A 和 B 都为空时,则返回 true,当两者的长度不同时,则返回 false
- A := 在 A 后连接 A
- i := 0,且 j := 0
- 当 i < A 的长度
- 如果 A 的长度 – i + 1 < B 的长度,则返回 false
- 当 i < A 的长度且 j < B 的长度且 A[i] = B[j]
- 将 i 和 j 增加 1
- 如果 j = B 的长度,则返回 true
- 如果 j 不为 0,则将 i 减少 1
- j := 0
- 将 i 增加 1
示例
让我们看看下面的实现以便更好地理解 −
class Solution(object):
def rotateString(self, A, B):
if not A and not B:
return True
if len(A) != len(B):
return False
A = A*2
i = 0
j=0
#print(A,B)
while i < len(A):
if len(A)-i+1<len(B):
return False
while i<len(A) and j < len(B) and A[i] == B[j]:
#print("Here!",i,j)
i+=1
j+=1
if j == len(B):
return True
if j:
i-=1
j=0
i+=1
ob1 = Solution()
print(ob1.rotateString("abcde", "cdeab"))
输入
"abcde" "cdeab"
输出
True
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

