สมมติว่ามีสตริง s แทนตัวอักษร และตัวเลข k เราต้องหาจำนวนพาลินโดรมที่สร้างได้ความยาว k โดยใช้ตัวอักษรใน s สามารถใช้ตัวอักษรซ้ำได้
เช่น ถ้าอินพุตคือ 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