Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Xoay chuỗi trong Python


Cho hai chuỗi A và B. Xoay chuỗi A và kiểm tra xem có vị trí nào khớp với B không. Nếu có trả về true, ngược lại false. Ví dụ: A = 'abcde', B = 'bcdea' → true vì xoay A được B.

Giải pháp

Các bước:

  • Nếu cả A và B rỗng → true; nếu độ dài khác nhau → false.
  • Nối A với chính nó: A = A*2.
  • Duyệt với hai con trỏ i, j để tìm B trong A*A.

Ví dụ

Triển khai Python:

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 
        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]: 
                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"))

Đầu vào

"abcde" "cdeab"

Đầu ra

True