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

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

[[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

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

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

ブログ    

推薦する

ChatSQL: ChatGPT を有効にしてプレーンテキストで SQL クエリを作成できるようにする

翻訳者 |ブガッティレビュー | Chonglou ChatGPTは2020年6月にリリースされ、 ...

...

AI人材の確保をめぐる秘密の戦い:中国が勝利する可能性は?

[[251811]]画像ソース @Visual China人工知能の概念は、提唱されてから60年以...

マイクロソフトはソフトからハードへの変革に向けてカスタム AI チップを開発中。その計画とは?

噂は本当で、Microsoft は大規模な言語モデルのトレーニングに使用できるカスタム AI チップ...

清華大学人工知能開発報告:中国は過去10年間のAI特許出願で世界第1位

ザ・ペーパー記者 張偉最新の報告書によると、中国の人工知能特許出願件数は過去10年間で世界第1位であ...

Transformerは画像を生成することも可能で、新しいViTGANのパフォーマンスはCNNベースのGANに匹敵する。

[[412196]]トランスフォーマーはさまざまな自然言語タスクに急速な進歩をもたらし、最近ではコ...

...

あなたは「オアシス」からどれくらい離れていますか? テクノロジーオタクが世界を救う方法をご覧ください

【元記事は51CTO.comより】最近、VR熱血ゲームを題材にした映画『レディ・プレイヤー1』が主要...

インスパー・シャオ・シュエ:人工知能はモノのインターネットを「スマート」にする

「人類の発展以来、テクノロジーの継続的な進化により、接続性、インタラクション、オンライン機能が絶えず...

Meituanグラフニューラルネットワークトレーニングフレームワークの実践と探索

著者 | Fu Haoxian、Peng Xiangzhou 他グラフニューラルネットワークの長期的...

「科学的シミュラクル」:人工知能とハイパーリアリティの衝突

人工知能(AI)技術の進歩は、現実と表現が区別できなくなるジャン・ボードリヤールのハイパーリアリティ...

メタ啓示: AIはメタバースの重要な変数である

最近、メタバースに新たな水が流れ込んできました。 Metaが開催した研究室でのディスカッションにおい...

自動運転車が「すべての人を助ける」ことができるようになるには、15の課題を乗り越える必要がある

[[251351]]自動運転車の将来は、交通手段に革命を起こすと予測されていた電動スクーターの歴史と...

人工知能を活用して会社のウェブサイトをより良く作成する方法

ここでは、テクノロジーの進歩に合わせて AI を使用して、より発展し、より強力になる Web サイト...

AI導入において、テクノロジーは最大の課題ではないが、人材は

[[427056]]写真: ゲッティ従来型企業の経営幹部が人工知能 (AI) や機械学習 (ML) ...