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

โปรแกรมเพื่อจัดเรียงองค์ประกอบทั้งหมดในรายการที่กำหนดและรวมเข้ากับสตริงใน Python


สมมติว่าเราได้รับรายการจำนวนเต็มบวก เราต้องเรียงลำดับรายการจากมากไปน้อยจากนั้นต้องรวมองค์ประกอบทั้งหมดในนั้นเพื่อสร้างสตริง เราคืนค่าสตริงที่เข้าร่วม

ดังนั้น หากอินพุตเหมือนกับอินพุต =[415, 78, 954, 123, 5] เอาต์พุตจะเป็น 954785415123

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

  • กำหนดฟังก์ชัน cmp() นี่จะใช้เวลา l, r
    • ถ้าค่าจำนวนเต็มของ (การแสดงสตริงของ (l) + การแทนค่าสตริงของ (r))> ค่าจำนวนเต็มของ (การแสดงสตริงของ (r) + การแทนค่าสตริงของ (l)) แล้ว
      • คืน 1
    • มิฉะนั้น
      • คืน -1
  • จัดเรียงรายการอินพุตตามการเปรียบเทียบฟังก์ชัน
  • รวมองค์ประกอบทั้งหมดในอินพุตลงในสตริงแล้วส่งคืน

ตัวอย่าง

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

จาก functools นำเข้า cmp_to_keydef cmp(l, r):if int(str(l) + str(r))> int(str(r) + str(l)):return 1 else:return -1def แก้ไข ( อินพุต):input.sort(key=cmp_to_key(cmp), reverse=True) return "".join(map(str, input))print(solve([415, 78, 954, 123, 5])) 

อินพุต

[415, 78, 954, 123, 5]

ผลลัพธ์

954785415123