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

โปรแกรม Python หาตัวอักษร 3 อันดับแรก ส่วนใหญ่มาจากชื่อบริษัท


สมมติว่าเรามีชื่อบริษัทเป็นสตริง เราต้องหาอักขระสามตัวที่พบบ่อยที่สุดจากชื่อบริษัทและแสดงโดยทำตามกฎเหล่านี้ −

  • เลือกตัวอักษรสามตัวที่ใช้บ่อยที่สุด
  • เรียงลำดับจากมากไปหาน้อย
  • หากความถี่ของอักขระบางตัวเท่ากัน ให้เรียงลำดับตามตัวอักษร

ดังนั้น หากอินพุตเป็น s ="TUTORIALSPOINT" ผลลัพธ์จะเป็น [[3, 'T'], [2, 'I'], [2, 'O']]

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

  • x :=แผนที่ที่มีตัวอักษรและความถี่ของตัวอักษรใน s
  • res :=รายการใหม่
  • สำหรับแต่ละ i ใน x ทำ
    • ใส่คู่ (x[i], i) ลงใน ret
  • res :=res หลังจากจัดเรียงตามลำดับตัวอักษร
  • res :=res หลังจากจัดเรียงตามความถี่ในลำดับย้อนกลับ
  • ส่งคืนสามรายการแรกจาก res

ตัวอย่าง

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

from collections import Counter
def solve(s):
   x = Counter(s)
   res = []

   for i in x:
      res.append([x[i], i])

   res = sorted(res, key=lambda cnt: cnt[1])
   res = sorted(res, key=lambda cnt: cnt[0], reverse=True)

   return res[:3]

s = "TUTORIALSPOINT"
print(solve(s))

อินพุต

"TUTORIALSPOINT"

ผลลัพธ์

[[3, 'T'], [2, 'I'], [2, 'O']]