私はScalaで2つの文字列の最も長い共通接尾辞を見つけたいと思います。最も長い共通接尾辞
def longestSuffix(s1: String, s2: String) = {
val it = (s1.reverseIterator zip s2.reverseIterator) takeWhile {case (x, y) => x == y}
it.map (_._1).toList.reverse.mkString
}
このコードは不器用で、おそらく非効率です(たとえば、逆転のため)。どのようにして最も長い共通の接尾辞が機能的に、つまり可変変数なしで見つかるでしょうか?それを改善するために
ありがとうございました。興味深いが少し複雑です。 – Michael