Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで長さk、距離nの辞書式に最小の小文字の文字列を見つけるプログラム


nとkの2つの数があるとします。サイズがkで距離がnの辞書式順序で最小の小文字の文字列を見つける必要があります。距離はアルファベットの文字番号の合計です。たとえば、「a」の文字番号は1、「b」の文字数は2、「y」の文字数は25、「z」の文字数は26などです。

したがって、入力がn =15 k =3の場合、出力は「aam」になります。これは、「aam」が長さ3の辞書式最小の文字列であり、距離が1 + 1 + 13=15であるためです。

これを解決するには、次の手順に従います-

  • dist:=サイズkの配列で、1で埋めます
  • クレジット:=n --k
  • i:=k-1
  • クレジット>0の場合、実行
    • val:=最低クレジットと25
    • dist [i]:=dist [i] + val
    • credit:=credit --val
    • i:=i-1
  • (dの文字-1 + "a"のASCII))をdist内の各dに結合し、戻ります

理解を深めるために、次の実装を見てみましょう-

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

入力

15, 3

出力

aam

  1. 文字列内のミラー文字を検索するPythonプログラム

    ユーザー入力文字列とその位置からの位置を指定すると、文字をアルファベット順に文字列の長さまでミラーリングする必要があります。この操作では、「a」を「z」に、「b」を「y」に、「c」を「x」に、「d」を「w」に変更します。これは、最初の文字が最後になることを意味します。オン。 Inpu t: p = 3 Input string = python Output : pygslm アルゴリズム Step 1: Input the string and position from we need to mirror the characters. Step 2: Creating a s

  2. リスト内で最大、最小、2番目に大きい、2番目に小さいものを見つけるPythonプログラム?

    配列が与えられたら、最大、最小、2番目に大きい、2番目に小さい数を見つける必要があります。 アルゴリズム Step 1: input list element Step 2: we take a number and compare it with all other number present in the list. Step 3: get maximum, minimum, secondlargest, second smallest number. サンプルコード # To find largest, smallest, second largest and second small