VIP de Programming

   

気になった発言とか簡易まとめ
ある程度まとまったらwikiにうpしよう!
レス集

[問題]最長共通部分

907 名前:以下、名無しにかわりましてVIPがお送りします [sage]: 2008/08/11(月) 16:05:00.79 ID:hbeCeZUF0 (17)

問題投下したくなったから投下してみる。暇な人は解いてみてね。

 ・512以下の要素数を持つint配列a, bが与えられる。
  a, bは0で終端されている。
  a, bとの最長共通部分列を検出し出力せよ。
  だたし最長共通部分列は複数存在する場合があるので
  i文字目がj通り考えられるならその置き換え可能なj個の文字列も
  置き換え文字であるとして出力せよ(認識可能であれば出力方法は問わない)。
  (例) a = { 1, 2, 3, 0 }; b = { 2, 3, 4, 0 }; 出力 = { (2), (3) };
  (例) a = { 1, 2, 3, 0 }; b = { 1, 3, 2, 0 }; 出力 = { (1), (2, 3), (3, 2) };

 ・512以下の要素数を持つint配列a, bが与えられる。
  a, bは0で終端されている。
  bのaに含まれる長さ2以上の部分列全てを出力せよ
  (認識可能であれば出力方法、順位は問わない)。
  (例)
   a = { 1, 2, 3, 4, 100, 200, 5, 6, 0 };
   b = { 1, 100, 200, 2, 3, 4, 5, 6, 0 };
   出力 = { (2, 3, 4), (100, 200), (5, 6) }; 

最長共通部分とは、一番長い共通する部分ってことです
たとえば
abcdefgxbcdexx だったら 1..4[bcde]ですね!

Permalink
Comments (View)
blog comments powered by Disqus