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

โปรแกรม Python เรียง string ตามลำดับ


สมมติว่าเรามีสตริงที่เป็นตัวอักษรและตัวเลขคละกัน s เราต้องเรียงตามเงื่อนไขต่อไปนี้

  • ตัวอักษรพิมพ์เล็กที่จัดเรียงทั้งหมดจะถูกวางไว้ก่อนตัวอักษรตัวพิมพ์ใหญ่

  • ตัวพิมพ์ใหญ่เรียงทั้งหมดจะถูกวางไว้ก่อนตัวเลข

  • เรียงเลขคี่ทั้งหมดจะถูกวางไว้ก่อนเรียงเลขคู่

ดังนั้น หากอินพุตเป็น s ="HeLlo1234" เอาต์พุตจะเป็น eloHL1324

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

  • กำหนดฟังก์ชัน f() นี่จะใช้เวลาค
  • รหัส :=0
  • ถ้า c เป็นตัวพิมพ์ใหญ่
    • รหัส :=10^3
  • มิฉะนั้น เมื่อ c เป็นตัวเลข แล้ว
    • รหัส :=10^6
  • ถ้า ASCII ของ c เป็นคู่ ดังนั้น
    • รหัส :=10^9
  • รหัสส่งคืน + ASCII ของ c
  • จากวิธีหลักให้ทำดังนี้
  • l :=เรียงลำดับรายการของ s และเรียงลำดับอักขระแต่ละตัว c ใน s โดยเรียกใช้ฟังก์ชัน f()
  • รวมอักขระแต่ละตัวใน l แล้วย้อนกลับ

ตัวอย่าง

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

def f(c):
   code = 0
   if c.isupper():
      code = 10 ** 3
   elif c.isdigit():
      code = 10 ** 6
      if ord(c) % 2 == 0:
         code = 10 ** 9
   return code + ord(c)

def solve(s):
   l = sorted(s, key=lambda c: f(c))
   return ''.join(l)

s = "HeLlo1234"
print(solve(s))

อินพุต

"HeLlo1234"

ผลลัพธ์

eloHL1324