以前に書いたSA-ISの記事(及びソースコード)には明確な間違いがあったので訂正しておく。 間違い 確か以前の記事では「入力文字列の各LMS部分文字列が互いにユニークなら、初めのinduced-sortを終えた段階でSuffixArrayが求まる」というようことを何箇所かで書いていたように思うが、これは間違い。 理由は簡単。 一回目のinduced-sortのステップ一の段階では各LMS部分文字列の先頭位置がバケツに挿入されることになるが、もしそれらに重複する文字があった場合、同じ文字(で始まるsuffix)同士のバケツ内での位置は、それらの挿入順に依存することになる。 そして、この挿入を、最終的なソート順に合わせた順番で行うことは、この段階では不可能なため、ここで挿入されたSタイプの文字(が表すsuffix)同士が適切な順で並んでいる保証はない。 また、induced-sortのステップ