Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để biết một chuỗi có lặp lại chính nó trong Python hay không?

Chúng tôi muốn kiểm tra xem chuỗi mà chúng tôi có chỉ bao gồm các lần lặp lại của một chuỗi con của chuỗi này hay không. Để kiểm tra xem chúng ta có thể kiểm tra xem một vòng quay của chuỗi có tồn tại trong sự kết hợp của 2 chuỗi hay không. Điều này là do một chuỗi là tuần hoàn nếu và chỉ khi nó bằng với một vòng quay không đáng kể của chính nó.

Ví dụ

Đoạn mã sau sẽ kiểm tra điều này và trả về tương ứng:

def find_period(s):
    # Concatenate 2 s and find s within
    # index one to end of the string
    i = (s+s).find(s, 1, -1)
    return None if i == -1 else s[:i]
print find_period('012012012012012')
print find_period('some random string')

Đầu ra

Điều này sẽ cung cấp cho chúng tôi đầu ra:

012
None