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

Pythonで隣接するさまざまなビットを削除した後、最短の文字列を見つけるプログラム


バイナリ文字列sがあるとすると、隣接する2つの文字が異なる場合は、それらを削除できます。最後に、この操作を必要な回数だけ実行できる場合に取得できる最小の文字列の長さを見つける必要があります。

したがって、入力がs ="1100011"の場合、出力は1になります。「10」を削除すると「10011」になり、「10」をもう一度削除すると「011」になり、「01」を削除します。 "、1を残します。

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

  • スタック:=新しいリスト
  • sの各cについて、
    • スタックが空であるか、スタックの最上位がcと同じである場合、
      • cをスタックにプッシュします
    • それ以外の場合、スタックの最上位がcと同じでない場合は、
      • スタックから要素をポップ
  • スタック内の要素数を返す

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

class Solution:
   def solve(self, s):
      stack = []
      for c in s:
         if not stack or stack[-1] == c:
            stack.append(c)
         elif stack[-1] != c:
            stack.pop()
      return len(stack)
ob = Solution() print(ob.solve("1100011"))

入力

"1100011"

出力

1

  1. Pythonで隣接するさまざまなビットを削除した後、最短の文字列を見つけるプログラム

    バイナリ文字列sがあるとすると、隣接する2つの文字が異なる場合は、それらを削除できます。最後に、この操作を必要な回数だけ実行できる場合に取得できる最小の文字列の長さを見つける必要があります。 したがって、入力がs =1100011の場合、出力は1になります。「10」を削除すると「10011」になり、「10」をもう一度削除すると「011」になり、「01」を削除します。 、1を残します。 これを解決するには、次の手順に従います- スタック:=新しいリスト sの各cについて、 スタックが空であるか、スタックの最上位がcと同じである場合、 cをスタックにプッシュします それ以外の場合、スタ

  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