最適な文字列がどういう形になっているか考えると、パターンの前後はa...ab...b ...a...ab...b \ ...a...ab...b ...と... y...yz...z... \ y...yz...z... y...yz...zのようになっているはずなので、SSSからPPPを除いた上でソートしたものをS′S'S′とし、PPPをS′S'S′のどこに挿入するのが最善か調べる。PPPをS′S'S′のiii文字目に挿入したものとS′S'S′のi+1i+1i+1文字目に挿入したものを比較するとき、この比較は辞書順に関して下に凸になっているので、最小となる場所を二分探索で探せばよい。