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

Pythonで文字が連続して繰り返されないように、すべての質問記号を置き換えるプログラム


文字と「?」のみを含む小文字の文字列があるとします。文字、すべての「?」を変換する必要があります最後の文字列に連続する繰り返し文字が含まれないように、文字を小文字に変換します。複数の解決策がある場合は、それらのいずれかを返します。

したがって、入力がs ="hel ??"の場合、出力はhelabになります。最初の疑問符は「l」以外のいずれかであり、最初の疑問符が指定された場合、2番目の疑問符は「a」以外の任意の値になります。 。

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

  • sのサイズが1と同じ場合、

    • sが「?」と同じ場合、

      • 「a」を返す

    • sを返す

  • s:=s

    に存在する文字のリスト
  • 0からs-1のサイズのiの場合、実行します

    • s [i]が「?」と同じ場合、

      • iが0と同じで、s [i + 1]が「?」と同じである場合、

        • s [i]:="a"

      • それ以外の場合、iが0と同じで、s [i + 1]が「a」と同じである場合、

        • s [i]:="b"

      • それ以外の場合、iが0と同じ場合、

        • s [i]:="a"

      • それ以外の場合、iが(sのサイズ)-1と同じで、s[i-1]が「a」と同じである場合

        • s [i]:="b"

      • それ以外の場合、iが(sのサイズ)-1と同じである場合、

        • s [i]:="a"

      • それ以外の場合、s [i-1]が「a」と同じで、s [i + 1]が「?」と同じである場合、

        • s [i]:="b"

      • それ以外の場合、s [i + 1]が「?」と同じである場合

        • s [i]:="a"

      • それ以外の場合、(s[i-1]が"a"と同じでs[i +1]が"b"と同じ)または(s[i-1]が"b"とs[i+1]と同じである場合「a」と同じです)、次に

        • s [i]:="c"

      • それ以外の場合、s[i-1]またはs[i + 1]が「a」の場合、

        • s [i]:="b"

      • それ以外の場合

        • s [i]:="a"

  • 文字を文字列に結合した後にsを返す

例(Python)

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

def solve(s):
   if len(s) == 1 :
      if s == "?":
         return "a"
      return s
   s = list(s)
   for i in range(len(s)):
      if s[i] == "?":
         if i == 0 and s[i+1] == "?":
            s[i] = "a"
         elif i == 0 and s[i+1] == "a":
            s[i] = "b"
         elif i == 0:
            s[i] = "a"
         elif i == len(s)-1 and s[i-1] == "a":
            s[i] = "b"
         elif i == len(s)-1:
            s[i] = "a"
         elif s[i-1] == "a" and s[i+1] == "?":
            s[i] = "b"
         elif s[i+1] == "?":
            s[i] = "a"
         elif (s[i-1] == "a" and s[i+1] == "b") or (s[i-1] == "b" and s[i+1] == "a"):
            s[i] = "c"
         elif "a" in (s[i-1],s[i+1]):
            s[i] = "b"
         else:
            s[i] = "a"
   return "".join(s)

s = "hel??"
print(solve(s))

入力

"hel??"

出力

helab

  1. 文字列にすべての一意の文字が含まれているかどうかを確認するPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 sring入力が与えられた場合、文字列にすべての一意の文字が含まれているかどうかを確認する必要があります。 アプローチ ブール値の配列を作成します。ここで、インデックスiの変数フラグは、アルファベットの文字iが文字列に含まれているかどうかを示します。 この文字に2回目に遭遇したとき、文字列文字は一意ではなくなったため、すぐにfalseを返すことができます。 文字列の長さがアルファベットに表示される一意の文字数の値を超える場合も、falseを返すことができます。 文

  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