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

Chương trình Python để sắp xếp chuỗi theo thứ tự tùy chỉnh

Giả sử chúng ta có một chuỗi chữ và số s. Chúng ta phải sắp xếp nó dựa trên điều kiện sau

  • Tất cả các chữ cái thường được sắp xếp sẽ được đặt trước các chữ cái viết hoa.

  • Tất cả các chữ cái viết hoa được sắp xếp sẽ được đặt trước các chữ số.

  • Tất cả các chữ số lẻ được sắp xếp sẽ được đặt trước các chữ số chẵn được sắp xếp.

Vì vậy, nếu đầu vào là s =​​"HeLlo1234", thì đầu ra sẽ là eloHL1324

Để 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 f (). Điều này sẽ mất c
  • mã:=0
  • nếu c là chữ hoa thì
    • mã:=10 ^ 3
  • ngược lại khi c là một chữ số thì
    • mã:=10 ^ 6
  • nếu ASCII của c là chẵn, thì
    • mã:=10 ^ 9
  • trả về mã + ASCII của c
  • Từ phương thức chính, hãy làm như sau
  • l:=danh sách được sắp xếp của các s và sắp xếp từng ký tự c trong s bằng cách gọi hàm f ()
  • nối từng ký tự trong l và quay lại

Ví dụ

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

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))

Đầu vào

"HeLlo1234"

Đầu ra

eloHL1324