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

Pythonで辞書式に最小の非パリンドローム文字列を検索するプログラム


回文である文字列sがあるとします。 sが回文ではなくなり、辞書式順序で最小になるように、1つの文字を変更する必要があります。

したがって、入力がs ="level"の場合、出力は "aevel"になります。これは、最初の"l"を"a"に変更して、回文ではない辞書式最小の文字列を取得できるためです。

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

  • 0から(s / 2のサイズ)の整数部分の範囲のiの場合、do
    • s[i]が"a"と同じでない場合、
      • s:=s内のすべての文字からの新しいリスト
      • s [i]:="a"
      • sのすべての文字を結合して戻る
  • s:=s内のすべての文字からの新しいリスト
  • sの最後の要素:="b"
  • sのすべての文字を結合して戻る

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

class Solution:
   def solve(self, s):
      for i in range(len(s) // 2):
         if s[i] != "a":
            s = list(s)
            s[i] = "a"
            return "".join(s)
      s = list(s)
      s[-1] = "b"
      return "".join(s)
ob = Solution()
s = "level"
print(ob.solve(s))

入力

"level"

出力

aevel

  1. リスト内の最小数を見つけるPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが表示されます。リストで利用可能な最小の番号を表示する必要があります ここでは、リストを並べ替えて最小の要素を取得するか、組み込みのmin()関数を使用して最小の要素を取得できます。 次に、以下の実装の概念を観察しましょう- 例 list1 = [101, 120, 104, 145, 99] # sorting using built-in function list1.sort() print("Smallest element is:", list1[0]) 出力 Smal

  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