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

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

[[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 はどのようにビジネス変革を実現できるのでしょうか?

ブログ    
ブログ    

推薦する

2018年に人工知能はどのように発展するでしょうか?世界中のトップ20人の専門家がこう言う

[[216201]]人工知能は2017年に一連の画期的な成果を達成しました。 2018年、人工知能は...

人工知能はブロックチェーン業界にどのような影響を与えるのでしょうか?

人工知能は人間が認識するのが難しい決定を下すでしょう。意思決定を行うには、アルゴリズムが大量のデータ...

推薦システムで学ぶべき対照的な学習方法

みなさんこんにちは。私はDiaobaiです。今日は、レコメンデーションシステムで学ぶべき対照学習法に...

...

予測分野における人工知能技術の応用

社会の発展と科学技術の進歩に伴い、人工知能技術が人類に与える影響は日々増大しており、その応用分野は拡...

...

機械学習は金融自動化においてどのような役割を果たすのでしょうか?

金融やその他の分野における自動化は避けられません。しかし、金融サービスの自動化は、高いレベルの注意、...

掃除機はいくらかかりますか?掃除ロボットの原理とハードウェア構成の詳細な説明

時代の発展とともに、掃除ロボットは多くの家庭にとって必需品となりました。掃除ロボットは、ベッドの下を...

Microsoft Bing Chat が AI 株取引機能を解放: 将来の株価動向を予測可能

Microsoft は、生成 AI のさまざまな可能性を積極的に模索しています。将来の応用シナリオの...

ChatGPTプロンプトワードの新しいゲームプレイ「もっと作る」、テキストと画像の効果を2倍にする

ChatGPT は誰もがよく知っていると思いますが、それをうまく使う方法は想像するほど簡単ではありま...

自分で作成したデータセット、TensorFlow を使用した株価予測チュートリアル

[[211061]] STATWORX チームは最近、Google Finance API から S...

人工知能と自然言語処理の概要: AI の 3 つの主要段階と NLP の主な応用分野

最近、Xenonstack は Jagreet Kaur 氏による「人工知能の概要とビッグデータにお...

「中国製チップ」の20年と新たな時代

[[285892]] 「自信を持った国と民族だけが、未来への道を着実に前進することができます。木の高...

顧客エンゲージメントにおける 5 つの主要な AI トレンド

クラウド通信および顧客エンゲージメント プラットフォームである Twilio が発表した新しい調査レ...

人工知能が話題になって3年。雇用情勢は依然として明るいのか?

私が人工知能の分野で働き始めた頃は、まだ広大な海でした。モデルの展開方法さえ知っていれば、モデルの調...