デイリーアルゴリズム: 有効な括弧

デイリーアルゴリズム: 有効な括弧

[[420388]]

'('、')'、'{'、'}'、'['、']' のみで構成される文字列が与えられた場合、その文字列が有効かどうかを判断します。

有効な文字列は次の要件を満たしている必要があります。

  • 開き括弧は、同じタイプの閉じ括弧で閉じる必要があります。
  • 開き括弧は正しい順序で閉じる必要があります。

空の文字列は有効な文字列とみなされることに注意してください。

例1:

  1. 入力: "()"  
  2. 出力: true  

例2:

  1. 入力: "()[]{}"  
  2. 出力: true  

例3:

  1. 入力: "(]"  
  2. 出力: false  

例4:

  1. 入力: "(]"  
  2. 出力: false  

例5:

  1. 入力: "([)]"  
  2. 出力: false  

答え: スタック構造を使用する

解決策: 文字列内の文字を 1 つずつスタックにプッシュし、文字を走査して 1 つずつ判断します。

  • まず要素が{、(、[であるかどうかを判断し、それを直接スタックにプッシュします。
  • それ以外の場合、文字は }、)、] のいずれかであり、文字列が有効であれば、要素はスタックの先頭と一致する必要があります。たとえば、スタックに ({) があり、次に走査される要素が ) である場合、現在の要素シーケンスは ({) であり、これは有効ではありません。したがって、スタックの先頭要素との一致は失敗し、文字列が無効であることを示す false が直接返されます。

トラバーサルが完了すると、一致した文字はすべて一致し、スタックからポップアウトされます。この時点でスタックが空であれば、文字列は有効です。スタックが空でない場合は、文字列に一致しない文字があり、文字列が無効であることを意味します。

理解を助けるために絵を描きます:

コード実装:

  1. const isValid =関数(s) {
  2. マップ = {
  3. '{' : '}'
  4. '(' : ')'
  5. '[' : ']'  
  6. }
  7. スタック = []
  8. ( i = 0 とします; i < s.length; i++) {
  9. if(map[s[i]]) {
  10. スタックをプッシュする(s[i])
  11. }そうでない場合、s[i] !== map[stack.pop()]){
  12. 戻る 間違い 
  13. }
  14. }
  15. スタックの長さを 0 で返す
  16. };

時間計算量: O(n)

空間計算量: O(n)

<<:  完璧な切り抜き王ビンビン! ByteDanceのインターンが開発したAIにより、4K 60fps動画のリアルタイム切り抜きが可能に

>>:  AI 主導の DevOps はどのようにビジネス変革を実現できるのでしょうか?

ブログ    

推薦する

...

人工知能が新たな技術を切り開く:10年以内に犬が人間と会話できるようになる

本日北京時間のデイリーメール紙の報道によると、有名な技術専門家は、今後10年間で人工知能技術の発展に...

AI業界の冷え込みの中、インテリジェント物流ロボット業界は「トレンド」を先導している

「人工知能の将来性は明るいが、財務見通しは良くない」「2018年は人工知能に進歩がなかった」「201...

顔認識技術の原理と応用展望の分析

顔認識技術は人間の顔の特徴に基づいています。まず、入力された顔画像またはビデオ ストリームに顔がある...

もし人工知能が人類をリードし、他の惑星で発展したら、その人工知能は人類を支配することになるのでしょうか?

科学者たちは長期にわたる調査により、人類文明の進歩が指数関数的な上昇傾向を示していることを発見した。...

...

人工知能はコロナウイルスの流行との戦いにどのように役立つのでしょうか?

新型コロナウイルス感染者数がほぼ指数関数的に増加し、世界は機能停止状態に陥っている。世界保健機関によ...

自然言語処理の実践: 機械学習によく使われるツールとテクニック

多くの自然言語処理には機械学習が関係しているため、機械学習の基本的なツールとテクニックを理解しておく...

新型コロナウイルスはAIに影響を与えるか?人工知能は人間の介入なしには機能しない

この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...

Googleの怠け者ツールが登場:AIカンファレンスのアバターがリリース、ワンクリックで要約、質問、スピーチが可能に

会議で苦しめられてきた労働者はついに解放される!先日終了した Google Cloud Next&#...

IDC: 人工知能への世界的支出は4年で倍増すると予想

IDC グローバル人工知能支出ガイドによると、世界の人工知能 (AI) 関連の支出は、今後 4 年間...

教師なしトレーニング用のスタック型オートエンコーダは時代遅れですか? ML博士が8つのオートエンコーダを比較

ベルリン工科大学のディープラーニング博士課程の学生であるティルマン・クロコッチ氏は、複数のタスクにお...

...

...