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

Chương trình tìm chuỗi chữ thường nhỏ nhất về mặt từ vựng có độ dài k và khoảng cách n trong Python

Giả sử chúng ta có hai số n và k. Chúng ta phải tìm chuỗi chữ thường nhỏ nhất về mặt từ vựng có kích thước k và khoảng cách n. Khoảng cách là tổng của số chữ cái trong bảng chữ cái. Ví dụ:'a' có chữ số 1, 'b' có 2, 'y' có 25, 'z' có 26, v.v.

Vì vậy, nếu đầu vào là n =15 k =3, thì đầu ra sẽ là "aam", vì "aam" là chuỗi nhỏ nhất về mặt từ vựng có độ dài 3 có khoảng cách là 1 + 1 + 13 =15.

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

  • dist:=một mảng có kích thước k và điền bằng 1
  • tín dụng:=n - k
  • i:=k - 1
  • trong khi tín dụng> 0, thực hiện
    • val:=tối thiểu tín dụng và 25
    • dist [i]:=dist [i] + val
    • credit:=credit - val
    • i:=i - 1
  • nối (các ký tự của (d - 1 + ASCII của "a")) cho mỗi d trong dist) và trả về

Ví dụ

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

def solve(n, k):
   dist = [1] * k

   credit = n - k

   i = k - 1
   while credit > 0:
      val = min(credit, 25)
      dist[i] += val
      credit -= val
      i -= 1

   return "".join(chr(d - 1 + ord("a")) for d in dist)

n = 15
k = 3
print(solve(n, k))

Đầu vào

15, 3

Đầu ra

aam