今日のアルゴリズム: 文字列内の隣接する重複をすべて削除する

今日のアルゴリズム: 文字列内の隣接する重複をすべて削除する

[[419471]]

小文字で構成される文字列 S が与えられた場合、重複削除操作は隣接する 2 つの同一文字を選択して削除します。

重複排除操作は、重複排除が実行できなくなるまで S 上で繰り返し実行されます。

すべての重複削除操作が完了した後の最終文字列を返します。答えは必ず一意になります。

例:

  1. 入力: 「abbaca」  
  2. 出力: "ca"  
  3. 説明する:
  4. たとえば、 「abbaca」では、2 つの文字が隣接していて同じであるため、 「bb」を削除できます。これは、現時点で削除できる唯一の重複です。すると、文字列「aaca」が取得されますが、そのうち「aa」のみが重複排除できるため、最終的な文字列は「ca」になります

ヒント:

  1. <= 長さ <= 20000
  2. S は小文字の英語のみで構成されます。

解決策: スタックの使用

解決方法: 文字列をトラバースし、1 つずつスタックにプッシュします。スタックにプッシュするときに、スタックの先頭要素と一致しているかどうかを判断します。一致している場合、つまり 2 つの要素が同じで隣接している場合は、スタックの先頭要素をポップアウトする必要があり、現在の要素をスタックにプッシュする必要はありません。

解決手順: 文字列を走査し、スタックの先頭文字を取り出し、現在の文字がスタックの先頭文字と一致しているかどうかを判断します。

  • 矛盾しており、先頭の文字がスタックにプッシュされ、現在の文字がスタックにプッシュされます
  • スタック ヘッド文字は現在の文字と同じであり、それに隣接しています。どちらの文字もスタックにプッシュする必要はなく、次のトラバーサルを直接実行できます。

トラバーサルが完了したら、スタック内の文字列を返します。

コード実装:

  1. const removeDuplicates =関数(S) {
  2. スタック = []
  3. (c of S)の場合{
  4. prev = stack.pop() とします。
  5. if(前 !== c) {
  6. スタック.push(前)
  7. スタックをプッシュする(c)
  8. }
  9. }
  10. スタックの結合( ' ' )を返す
  11. };
  • 時間計算量: O(n)
  • 空間計算量: O(n

<<:  ハイテク大手の新たな戦場:ロボットの時代が始まる

>>:  人工知能の台頭によりプログラマーは消滅するのでしょうか?

ブログ    
ブログ    

推薦する

ニューラルネットワークの内部はどのようになっているのでしょうか?

ニューラル ネットワークは錬金術の炉のようなものです。大量のデータを入力すると、魔法のような結果が生...

2022年スタンフォードAIインデックス発表:中国がAIジャーナルの出版と引用で1位、TFオープンソースライブラリが最も人気

人工知能の分野では、スタンフォード大学が開始したAIインデックスは、AIの動向と進歩を追跡する非営利...

LLaMa 3はGPT-4を目指し、ジェミニから教訓を得て7月に延期される可能性あり

過去には、画像生成モデルは主に白人を被写体として表示していることで批判されることが多かったが、Goo...

...

...

サイバーセキュリティにおける人工知能の役割と6つの製品オプション

現代の IT 環境では、サイバー脅威がますます顕著になっています。サイバーセキュリティとその製品にお...

AIがデータセンター運営者が直面する課題をどう解決するか

業界の専門家が、業界内で発生する運用上の課題の解決に AI がどのように役立つか、データ センター業...

復旦大学の論文は、3体のSFシーンを実現:体にディスプレイ画面を装着し、ナビゲートやチャットも可能

誰もが歩くディスプレイ画面であり、これは単なる SF のワンシーンではありません。羅吉が最も感動した...

より良いAIでより良い社会を築く

人工知能 (AI) には、従来のエンジニアリング システムからヘルスケア、芸術やエンターテイメントの...

メタバース: 新たな人間コミュニティか、それとも徹底的な監視による「金儲けの道具」か?

バーチャルリアリティヘッドセットは何年も前から市場に出回っており、多くのティーンエイジャーもこれらの...

...

女神があなたを好きかどうか知りたいなら、AI マシンであなたの顔をスキャンするだけです。

[[281019]]この記事はLeiphone.comから転載したものです。転載する場合は、Lei...

...

人工知能が高等教育を支援する:変化と持続

[[434825]]人工知能が教育に浸透する中で、我々は「静をもって動を制御する」という決意を持ち、...

インテルと4Paradigmが協力し、誰もがAIを利用できるように

[51CTO.com からのオリジナル記事] 今日、人工知能はもはや遠い概念ではなく、私たちの仕事と...