スタックなしのバランス括弧チェッカーの問題

神のスーレマン

Pythonを学んだ後、スタックなしで括弧チェッカーの問題を解決しようとしています。私のコードは多くの式で機能しますが、それらの多くでも失敗します。特に同じタイプのブラケットが同時に表示される場合。

exp = "([[]])"
#input("Enter the expression to evaluate: ")

def sumer(l):
    x=0
    for i in range(len(l)):
      x+=l[i]
    return x  

exp_num = list([])

for i in range(len(exp)):
   if exp[i]=="(":
        exp_num.append(1)
   if exp[i]==")":
        exp_num.append(-1)
   if exp[i]=="[":
        exp_num.append(2)
   if exp[i]=="]":
        exp_num.append(-2)
   if exp[i]=="{":
        exp_num.append(3)
   if exp[i]=="}":
        exp_num.append(-3)
del exp
for g, i in enumerate(exp_num):
    if i>0:
        try:
            op = exp_num.index(-i)
            sm = sumer(exp_num[g+1:op])
            if sm == 0:
                for x in range(g,op+1):
                    exp_num[x]= 0
        except ValueError:
            break
    else:
        continue      
if exp_num.count(0) == len(exp_num):
    print("The entered expression is valid !!")
else:
    print("The entered expression is not valid !!")

上記の文字列では機能しますが、失敗します ([[()]])

これまでのところ、私がやっていることは次のとおりです。

ステップ1:さまざまな種類のブレースに、開く場合は正、閉じる場合は負の番号を付けます。たとえば、 '(' = 1 and ')' = -1です。最後に、入力式を同じ順序の数値のリストに変換します。

ステップ2:リストのスキャンを開始し、正の数(開き角かっこ)が見つかった場合は、対応する負の数(閉じかっこ)を見つけます。これら2つの間の数の合計を見つけます。

ステップ3:合計が0の場合は、リスト内のすべての処理済みアイテムを0に置き換えて、繰り返し続けます。

最終的に、リストのすべての項目がゼロになる場合、式は有効です。それ以外の場合、式は無効です。

Jaideep Shekhar

Pythonを学んだ後、スタックなしで括弧チェッカーの問題を解決しようとしています。

仮に...

リストをスタックとして扱うことができます。

初期化exprしてdelimiters

expr = '[{[{<>}]}]'
delimiters = list()

そしてdelimitersスタックとして使用します:

# For each character in expression
for character in expr:
    # If it is an opening one
    if character in opening:
        # Add it's unique value to delimiters
        delimiters.append( opening.index(character) )
    # If it is a closing one
    if character in closing:
        # If there are opening delimiters and character matches the last opened one
        if delimiters and delimiters[-1] == closing.index(character):
            # It was valid, remove the opening delimiter
            del delimiters[-1]
        # Else, expression is invalid!
        else:
            break

ここでopeningclosingは一致するペアです。

opening = '[({<'
closing = '])}>'

最後に、リスト(以前はスタックと呼ばれていました)が空の場合、式は有効でした。

print('Success!') if not delimiters else print('Invalid Expression!')
# same as:
# print('Success!') if delimiters == [] else print('Invalid Expression!')

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

カスタムチェックボックスボタンの問題

分類Dev

カスタムチェックボックスの問題

分類Dev

文字列がリンクリストになり、括弧のバランスをチェックします

分類Dev

抽象クラスメソッドの具体的な実装における** kwargsのチェック。インターフェースの問題?

分類Dev

スタック/正規表現なしにバランスのとれた括弧をチェックする方法は?

分類Dev

タッチスクリーンのキャンバスの問題

分類Dev

Bootstrapポップオーバーのカスタムラウンドチェックボックス

分類Dev

ラジオボタンを使用します。別のクラスでチェックインします(静的/非静的なものの問題)

分類Dev

チェックボックスイベントを使用したjQueryUIスライダーのバインドに関する問題

分類Dev

Woocommerceカスタムチェックアウトに必要なフィールド動作の問題

分類Dev

Facebookカスタマーチャットプラグインの問題

分類Dev

カスタマイズ可能なjqueryアラートボックスの問題

分類Dev

ボタン要素内のチェックボックスをクリックします-Firefoxの問題

分類Dev

テストが実行されない-ボットの問題:テストターゲットMyTestsでエラーが発生しました(テストセッションがチェックインせずに終了しました(0)

分類Dev

カスタム認証バックエンドの問題

分類Dev

チェックボックスの行-slideUpの完全な問題

分類Dev

リーンバックフォーカスの問題

分類Dev

剣道ツリービューのチェックボックススタイリングの問題

分類Dev

HP CompaqTC4400のタッチスクリーンの問題

分類Dev

ページネーション後の入力タイプチェックボックスでカスタムクラスが機能しないDataTables

分類Dev

チェックボックスの問題のオンチェック機能

分類Dev

データ属性条件のあるJqueryチェックボックスの問題

分類Dev

スタックの問題:式が正しく括弧で囲まれていて、バランスとマッチングが行われているかどうかを確認したい

分類Dev

Woocommerceチェックアウト:商品をカートの問題に追加するチェックボックス

分類Dev

マンティスバグトラッカーでのニスクッキーの問題

分類Dev

データベースパスのフェッチの問題

分類Dev

チェックボックスの問題でフィルタリング[reactjs]

分類Dev

アンカーリンクを使用した単純なCSSレスポンシブタッチメニューの問題

分類Dev

タスクリストの問題のバッチ変数

Related 関連記事

  1. 1

    カスタムチェックボックスボタンの問題

  2. 2

    カスタムチェックボックスの問題

  3. 3

    文字列がリンクリストになり、括弧のバランスをチェックします

  4. 4

    抽象クラスメソッドの具体的な実装における** kwargsのチェック。インターフェースの問題?

  5. 5

    スタック/正規表現なしにバランスのとれた括弧をチェックする方法は?

  6. 6

    タッチスクリーンのキャンバスの問題

  7. 7

    Bootstrapポップオーバーのカスタムラウンドチェックボックス

  8. 8

    ラジオボタンを使用します。別のクラスでチェックインします(静的/非静的なものの問題)

  9. 9

    チェックボックスイベントを使用したjQueryUIスライダーのバインドに関する問題

  10. 10

    Woocommerceカスタムチェックアウトに必要なフィールド動作の問題

  11. 11

    Facebookカスタマーチャットプラグインの問題

  12. 12

    カスタマイズ可能なjqueryアラートボックスの問題

  13. 13

    ボタン要素内のチェックボックスをクリックします-Firefoxの問題

  14. 14

    テストが実行されない-ボットの問題:テストターゲットMyTestsでエラーが発生しました(テストセッションがチェックインせずに終了しました(0)

  15. 15

    カスタム認証バックエンドの問題

  16. 16

    チェックボックスの行-slideUpの完全な問題

  17. 17

    リーンバックフォーカスの問題

  18. 18

    剣道ツリービューのチェックボックススタイリングの問題

  19. 19

    HP CompaqTC4400のタッチスクリーンの問題

  20. 20

    ページネーション後の入力タイプチェックボックスでカスタムクラスが機能しないDataTables

  21. 21

    チェックボックスの問題のオンチェック機能

  22. 22

    データ属性条件のあるJqueryチェックボックスの問題

  23. 23

    スタックの問題:式が正しく括弧で囲まれていて、バランスとマッチングが行われているかどうかを確認したい

  24. 24

    Woocommerceチェックアウト:商品をカートの問題に追加するチェックボックス

  25. 25

    マンティスバグトラッカーでのニスクッキーの問題

  26. 26

    データベースパスのフェッチの問題

  27. 27

    チェックボックスの問題でフィルタリング[reactjs]

  28. 28

    アンカーリンクを使用した単純なCSSレスポンシブタッチメニューの問題

  29. 29

    タスクリストの問題のバッチ変数

ホットタグ

アーカイブ