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

โปรแกรมนับจำนวนพาลินโดรมขนาด k ที่สร้างจากตัวอักษรในสตริงใน Python

สมมติว่ามีสตริง 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