เราต้องการตรวจสอบว่าสตริงที่มีประกอบด้วยการซ้ำของสตริงย่อยของมันเองเท่านั้น เพื่อตรวจสอบ ให้เช็คว่าการหมุน (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