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

โปรแกรมตรวจสอบว่าเราสามารถสร้าง k palindromes จากอักขระสตริงที่กำหนดได้หรือไม่ใน Python?


สมมติว่าเรามีสตริง s และตัวเลข k อื่น เราต้องตรวจสอบว่าเราสามารถสร้าง kpalindromes โดยใช้อักขระทั้งหมดใน s ได้หรือไม่

ดังนั้น หากอินพุตเป็น s ="amledavmel" k =2 เอาต์พุตจะเป็น True ตามที่เราสร้าง "ระดับ" และ "มาดาม" ได้

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้

  • d :=แผนที่ที่เก็บอักขระที่ไม่ซ้ำกันและความถี่ของอักขระแต่ละตัว

  • cnt :=0

  • สำหรับแต่ละคีย์ใน d ทำ

    • ถ้า d[key] เป็นเลขคี่

      • cnt :=cnt + 1

    • ถ้า cnt> k แล้ว

      • คืนค่าเท็จ

  • คืนค่า True

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น

ตัวอย่าง

from collections import Counter

class Solution:
   def solve(self, s, k):
      d = Counter(s)
         cnt = 0
         for key in d:
            if d[key] & 1:
               cnt += 1
            if cnt > k:
               return False
         return True

ob = Solution()
s = "amledavmel"
k = 2
print(ob.solve(s, k))

อินพุต

"amledavmel",2

ผลลัพธ์

True