Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีตรวจสอบว่าสตริงซ้ำตัวเองใน Python

เราต้องการตรวจสอบว่าสตริงที่มีประกอบด้วยการซ้ำของสตริงย่อยของมันเองเท่านั้น เพื่อตรวจสอบ ให้เช็คว่าการหมุน (rotation) ของสตริงมีอยู่ในการรวม 2 สตริงหรือไม่ เนื่องจากสตริงเป็น periodic ก็ต่อเมื่อมันเท่ากับการหมุนที่ไม่ใช่ของตัวเอง

ตัวอย่าง

โค้ดต่อไปนี้ตรวจสอบและคืนค่าตามลำดับ:

def find_period(s):
    # รวม 2 s และหา s ภายใน
    # ดัชนี 1 ถึงท้ายสตริง
    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'))

ผลลัพธ์

จะได้ผลลัพธ์:

012
None