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

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

[[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 がどのように役立つか、また代理店向けの最新のポリシーについて説明...

ChatGPTの収益成長は阻害されている:モバイルアプリのダウンロードは急増しているが、拡大は遅い

10月10日、最近のレポートによると、OpenAIの人工知能チャットボットChatGPTの収益成長が...

人工知能プロジェクトからビジネス価値をうまく引き出すための 8 つの秘訣

[[249778]] AI はビジネスに大きな可能性を秘めていますが、ほとんどの組織がそのメリットを...

ChatGPTのiOS版はBing検索機能を統合しており、有料会員のみが利用可能

6月28日、OpenAIは今年5月にリリースしたChatGPTアプリのiOS版をリリースした。このア...

失敗が頻発する中、AI 翻訳者はどのように進歩の道を続けるべきでしょうか?

[[248512]]当時、英語に支配されていた恐怖を覚えている人がどれだけいるでしょうか?前日に覚...

すべてがAI+になる新しい形の人工知能があなたを待っています

人工知能技術は急速に発展し、人々の生活に微妙な影響を与えています。掃除ロボット、調理ロボット、配達ロ...

スーパーコンピューターで設計された、カエルの細胞から作られた初の生きたロボット

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

Dharma AI Labが3つのスマートデバイスをリリース、Tmall Genieがオンラインに

アリババのダルマ人工知能研究所は最近、深セン衛星テレビと共同で「Show AI Life」という新製...

オープンソースのビデオ切り抜き技術が人気です!背景を変える方法は、それが真実か嘘かを判断するのが非常に難しい

グリーンスクリーンは、映画やテレビドラマで画像を切り取ったり背景を変えたりするのに強力なツールですが...

...

教師あり学習の一般的なアルゴリズムは何ですか?どのように適用されますか?

教師あり学習とは何ですか?教師あり学習は機械学習のサブセットであり、機械学習モデルの入力データにラベ...

スマートカーの時代において、あなたの安全とプライバシーを誰が保証するのでしょうか?

電気スマートカーの発展により、自動車はもはや独立した機械的なハードウェアボックスではなく、センシング...