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

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

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

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

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

ブログ    
ブログ    
ブログ    

推薦する

IBM LinkedIn が教えてくれる: 職場と AI はどれくらい離れているのか?

[51CTO.com からのオリジナル記事] 少し前に、LinkedIn と IBM が多数の専門...

2021 年のトップ 10 機械学習ライブラリ

今は人工知能爆発の時代です。AIと機械学習は広く普及しています。もちろん、機械学習の分野で最も人気の...

...

アリババが自社開発したAI推論チップがリリース、Hanguang 800は他のチップより10倍強力

[51CTO.comよりオリジナル記事] 9月25日、DAMOアカデミーの張建鋒学長は杭州雲奇カンフ...

人工知能はクラウド セキュリティ サービスをどのように変えるのでしょうか?

この記事では、AI がクラウド セキュリティ サービスをどのように変えているのか、そしてそれが企業に...

プライベートUNIT学習ノート - 対話システムの構築を簡単に始めることができます

対話システムの構築は比較的専門的で複雑なプロセスであり、通常は 3 つの主要な段階に分かれています。...

...

Googleの華博士がICCV2021で新モデルを発表、卵を泡立てるだけでパンケーキを作りたいかどうかがわかる

機械学習モデルが現実世界でますます使用され、導入されるようになると、AI の意思決定は人々の日常生活...

AIと合成生物学の融合における5つの大きな課題:テクノロジー、データ、アルゴリズム、評価、社会学

過去 20 年間で生物学は大きな変化を遂げ、生物システムを設計することが可能になりました。私たちの細...

IoTとAIがスマートホームにもたらす効果

スマートシティ建設が国家戦略となり、ハイテクが急速に発展するにつれて、スマートシティはバージョン1....

AI による執筆の歴史を振り返ると、AI が人間の執筆作業に取って代わるまでにはどのくらい時間がかかるのでしょうか?

AI がまた本を出版しました。今回は専門家向けの教科書です。科学技術系出版社のひとつ、ドイツのシュ...

AutoML、AutoKeras... これら 4 つの「自動」自動機械学習手法の違いがわかりますか?

まずは短いおとぎ話から始めましょう...昔々、今では誰も使っていないプログラミング言語を使い、今では...