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

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

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

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

国連がAI報告書を発表:自動化とAIはアジアに大きな影響を与える

[[245530]]科学技術の急速な発展は、社会の変化に大きな影響を与えます。第四次産業革命は、人工...

智恵さんはブドウを縫うことができるロボットアームを自作した。費用は1万元。

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

サイバーセキュリティのための AI: セキュリティ戦略への AI の組み込み

人工知能は、生産性の向上、売上の増加、ユーザーエクスペリエンスの向上など、さまざまな状況で使用されて...

人工知能技術は急速に発展しています。AIの信頼問題をどのように解決するのでしょうか?

[[441503]] 【グローバルネットワークテクノロジー記者 王楠】AIといえば、まず何を思い浮...

...

「ディープラーニングは学習ではない」:インテル幹部とAI大手ルカンが罵り合う

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

ネットワーク人工知能とは何ですか?

今日、ますます多くの企業が人工知能 (AI) とネットワークの相乗効果を活用しています。ユーザーデバ...

...

デューク大学: 効率的な人工知能システムのソフトウェアとハ​​ードウェアの共同設計

少し前に、機械知能 AI テクノロジー年次会議がオンラインで開催されました。デューク大学電気・コンピ...

IEEE: 新興人工知能サイバーセキュリティの課題と解決策

合成現実(1)課題人工知能は、人々がこれまでしたことのない、または言ったことのないことをしたり、した...

AI によって自動化された、誰でも使えるオンライン写真編集!北京大学の卒業生がアルゴリズムを新たな高みへ

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

誇大宣伝サイクルを経ても、チャットボットがまだ普及していないのはなぜでしょうか?

2016 年に私たちは、ボット パラダイムの変化は、過去 10 年間の Web からモバイル アプリ...

論文と新しいビデオはこちら、サウスイースト大学が「室温超伝導体」LK-99の奇妙な抵抗挙動を説明

最近、各国の科学者らが韓国の「常温超伝導」物質LK-99に関する研究を発表し、悲観的な見方をする人が...

あなたのビジネスに最適なRPAコンサルタントを見つける方法

RPA 導入を成功させるために、この記事では、ビジネスに最適な RPA コンサルタントを選択するプロ...

自動制御システムとは何ですか? 自動制御システムの動作原理は何ですか?

自動制御システムといえば、実は多くの友人はそれについてあまり知りません。ここでは、自動制御システムと...