n 個の文字列とその長さと、文字列 s2 を s1 と連結して s3 を返す add(string s1,string s2) 関数が与えられた場合。これらすべての文字列を 1 つの大きな文字列に連結するコストを最適化するにはどうすればよいでしょうか。
そのような関数が指定されていない場合、単純にサイズ (n1 + n2 + ...nn) の出力文字列を作成し、各文字列の文字を追加し続けることができます。しかし、この関数が与えられた場合、入力文字列 s1 をトラバースして末尾を見つけてから、文字列 s2 をそれに連結する必要があります。
文字列の長さが2、6、1、3、4の場合..
add (s1, s2) traversal for length 2, op string of length 8
add (s1, s3) traversal for length (2+6) op string of length 9
add (s1, s4) traversal for length (2+6+1) op string of length 12
add (s1, s5) traversal for length (2+6+1+3) op string of length 16...and so on..