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

Pythonで連続する重複文字を削除した後に文字列を検索するプログラム


文字列sがあるとすると、最初の連続する重複文字を繰り返し削除します。最後の文字列を見つける必要があります。

したがって、入力がs ="xyyyxxz"の場合、「yyy」は削除される最初の連続する重複文字であるため、出力は「z」になります。つまり、「xxxz」があります。その後、「xxx」が削除され、「z」になります。

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

  • スタック:=新しいスタック
  • i:=0
  • i
  • スタックが空でなく、スタックの最上位がs [i]と同じである場合、
    • x:=スタックから最後の要素を削除します
    • i
    • i:=i + 1
  • i:=i-1
  • それ以外の場合、
    • s[i]をスタックにプッシュします
  • i:=i + 1
  • スタック要素を結合した後に戻る
  • 理解を深めるために、次の実装を見てみましょう-

    class Solution:
       def solve(self, s):
          stack = []
          i = 0
          while i < len(s):
             if len(stack) and stack[-1] == s[i]:
                x = stack.pop()
                while i < len(s) and x == s[i]:
                   i += 1
                i -= 1
                else:
                   stack.append(s[i])
                i += 1
          return "".join(stack)
    ob = Solution()
    s = "xyyyxxz"
    print(ob.solve(s))

    入力

    "xyyyxxz"

    出力

    z

    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. Pythonを使用して文字列からすべての重複文字を検索する

      1つの文字列が与えられます。私たちのタスクは、指定された文字列内で頻度が複数の文字を見つけることです。 例として、「HelloWorld」という文字列を見ることができます。 Pythonを学びましょう」と言うと、アルゴリズムは複数回出現する文字を検出します。この場合、出力は次のようになります- e : 3 l : 4 o , 3) <space> : 4 r : 2 t : 2 n : 2 この問題を実装するために、Pythonコレクションを使用しています。コレクションから、Counter()メソッドを取得できます。 Counter()メソッドは、ハッシュテーブルオブジェ