Manacherのアルゴリズムを理解する
文字列sから最長の回文部分文字列を見つける問題について、Manacherのアルゴリズムはその解法の一つです。このアルゴリズムは1957年にManacherによって考案され、時間計算量が線形O(n)に改善されます。
問題
入力: 文字列 s
出力: s の最長の回文部分文字列
例
例 1:
入力: s = "babad"
出力: "bab" または "aba"
例 2:
入力: s = "cb ...
6月23日 17:43 投稿
Manacherアルゴリズムによる最長回文部分文字列の効率的探索
問題の定義
与えられた文字列から、連続する部分文字列の中で最も長い回文(前後どちらから読んでも同じになる文字列)を求める問題を「最長回文部分文字列問題」と呼ぶ。例えば文字列 "aaaba" では、"aaa" や "aba" が回文であり、その中で最長のものは "aaa" となる。
この問題は動的計画法でも解けるが、時間計算量が O(n²) となる。それに対して Manacher アルゴリズム ...
6月19日 21:07 投稿