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

Pythonで指定された数値を持つ最小の文字列を見つけるプログラム


2つの値nとkがあるとします。長さがnで数値がkに等しい辞書式順序で最小の文字列を見つける必要があります。小文字の数値はアルファベットでの位置(1から始まる)であるため、文字「a」の数値は1、文字「b」の数値は2というようになります。また、小文字で構成される文字列の数値は、その文字の数値の合計です。

したがって、入力がn =4 k =16の場合、出力は「aaam」になります。これは、数値が1 + 1 + 1 + 13 =16であり、このような値と長さを持つ最小の文字列であるためです。 4.

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

  • 文字列:=空白の文字列
  • n> 0がゼロ以外の場合、do
    • 文字:=最低26およびk-n + 1
    • string:=stringは、対応する文字をアルファベット位置の値の文字から連結します
    • k:=k-文字
    • n:=n-1
  • 文字列を逆にして返す

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

def solve(n, k):
   string = ""
   while n > 0:
      letter = min(26, k-n+1)
      string += chr(letter + ord('a') - 1)
      k -= letter
      n -= 1
   return string[::-1]

n = 4
k = 16
print(solve(n, k))

入力

4, 16

出力

aaam

  1. Pythonで指定されたインデックスを使用して文字列をシャッフルするプログラム

    文字列sとインデックスindのリストがあり、それらは同じ長さであるとします。文字列sは、位置iの文字が最終文字列のindexes[i]に移動するようにシャッフルされます。最後の文字列を見つける必要があります。 したがって、入力がs =ktoalak ind =[0,5,1,6,2,4,3]の場合、出力は「コルカタ」になります これを解決するには、次の手順に従います- fin_str:=サイズがsと同じで、0で埋められるリスト sの各インデックスiと文字vについて、実行します fin_str [ind [i]]:=v fin_strに存在する各文字を結合し

  2. 文字列内のミラー文字を検索する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