Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình sắp xếp tất cả các phần tử trong một danh sách nhất định và hợp nhất chúng thành một chuỗi bằng Python

Giả sử chúng ta được cung cấp một danh sách các số nguyên dương. Chúng ta phải sắp xếp danh sách theo thứ tự giảm dần và sau đó phải nối tất cả các phần tử trong đó để tạo thành một chuỗi. Chúng tôi trả về chuỗi đã tham gia.

Vì vậy, nếu đầu vào giống như input =[415, 78, 954, 123, 5], thì đầu ra sẽ là 954785415123

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • Định nghĩa một hàm cmp (). Điều này sẽ mất l, r
    • nếu giá trị nguyên của (biểu diễn chuỗi của (l) + biểu diễn chuỗi của (r))> giá trị nguyên của (biểu diễn chuỗi của (r) + biểu diễn chuỗi của (l)), thì
      • trả lại 1
    • nếu không,
      • trả về -1
  • sắp xếp đầu vào danh sách theo hàm so sánh
  • kết hợp tất cả các phần tử trong đầu vào thành một chuỗi và trả lại nó.

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

 từ functools nhập cmp_to_keydef cmp (l, r):if int (str (l) + str (r))> int (str (r) + str (l)):trả về 1 else:trả về -1def giải ( input):input.sort (key =cmp_to_key (cmp), reverse =True) return "" .join (map (str, input)) print (Giải quyết ([415, 78, 954, 123, 5]))  

Đầu vào

 [415, 78, 954, 123, 5] 

Đầu ra

 954785415123