สมมติว่าเรามีสตริง s ที่แทนตัวอักษรและตัวเลข k เราต้องหาจำนวนพาลินโดรมที่เราสามารถสร้างความยาว k โดยใช้ตัวอักษรในหน่วย s เท่านั้น และเราสามารถใช้ตัวอักษรเหล่านี้ได้มากกว่า 1 ครั้งหากต้องการ
ดังนั้น หากอินพุตเป็น s ="xy", k =4 เอาต์พุตจะเป็น 4 เนื่องจากพาลินโดรมเป็น [xxxx, yyyy,xyyx, yxxy]
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- n :=ผลหารของ k/2
- x :=จำนวนอักขระที่ไม่ซ้ำใน s
- ผลตอบแทน x^(n + k mod 2)
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
class Solution: def solve(self, s, k): n=k//2 return len(set(s))**(n+k%2) s = "xy" k = 4 ob = Solution() print(ob.solve(s, k))
อินพุต
"xy",4
ผลลัพธ์
4