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

Pythonでk番目に小さいnの長さの辞書式順序で最小の文字列を見つけるプログラム


数値nと別の値kがあるとします。ここで、「0」、「1」、および「2」のみを含み、文字が連続して繰り返されない文字列について考えてみましょう。長さnのそのような文字列を選択し、辞書式順序で最小のk番目の文字列を見つける必要があります。 k番目の文字列がない場合は、空の文字列を返します。

したがって、入力がn =4 k =2の場合、出力は「0120」になります。

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

  • メソッドsolve()を定義します。これには、s、k、およびlastが必要です
  • sが0と同じ場合、
    • 空白の文字列を返す
  • 「012」の各文字cについて、
    • cがlastと同じ場合、
      • 次の反復に進む
    • k <2 ^(s-1)の場合、
      • return c +solve(s-1、k、c)
    • k:=k-2 ^(s-1)
  • 空白の文字列を返す
  • メインメソッド呼び出しからsolve(n、k、Null)

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

サンプルコード

class Solution:
   def solve(self, s, k, last=None):
      if s == 0:
         return ""
         for c in "012":
            if c == last:
               continue
            if k < 2 ** (s - 1):
               return c + self.solve(s - 1, k, c)
            k -= 2 ** (s - 1)
         return ""

ob = Solution()
n = 4
k = 2
print(ob.solve(n, k))

入力

4, 2

出力

0120

  1. Pythonで文字列の長さを見つける(3つの方法)

    文字列は、一連のUnicode文字であるPythonです。一度宣言すると、変更できません。この記事では、文字列の長さを見つけるためのさまざまな方法を説明します。 len()の使用 これが最も簡単な方法です。ここでは、len()という名前のライブラリ関数を使用します。文字列はパラメータとして関数に渡され、画面内の文字数を取得します。 例 str ="Tutorials" print("Length of the String is:", len(str)) 出力 上記のコードを実行すると、次の結果が得られます- Length of the Strin

  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