สมมติว่าเรามีสตริง s และ t สองสตริง เราต้องหาจำนวนครั้งที่สตริง s สามารถต่อกันเพื่อสร้าง t หากเราไม่สามารถสร้าง t โดยใช้ s ได้ ให้คืนค่า -1
ดังนั้น หากอินพุตเป็น s ="tom" t ="tomtomtom" เอาต์พุตจะเป็น 3 เนื่องจากเราสามารถต่อ "tom" 3 ครั้งเพื่อให้ได้ "tomtomtom"
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- ถ้าขนาดของ t ไม่หารด้วยขนาดของ s แล้ว
- คืน -1
- cnt :=ผลหารของ (ขนาดของ t / ขนาดของ s)
- s :=ต่อ s cnt จำนวนครั้ง
- ถ้า s เหมือนกับ t แล้ว
- คืนสินค้า
- คืน -1
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
def solve(s, t): if(len(t) % len(s) != 0): return -1; cnt = int(len(t) / len(s)) s = s * cnt if(s == t): return cnt return -1 s = "tom" t = "tomtomtom" print(solve(s, t))
อินพุต
"tom", "tomtomtom"
ผลลัพธ์
3