この課題のために、差分を圧縮する必要があります。 diffは、2つの文字列の違いを表すデータです。 この課題のために、次のことができる1つ以上のプログラムを提供する必要があります。
- を入力
A
しB
、差分を出力します。C
- 入力
A
およびC
、および出力B
- 入力
B
およびC
、および出力A
目標は、diff C
をできるだけ小さくすることです。 diffは、文字列、数値、データのblobなど、何でもかまいません。サイズ(バイト数)だけが重要です。
Githubで見つけることができる 50のテストケースがあります。各テストケースは、スペースで区切られた2つのURLで構成されており、diffする必要がある2つのファイルを指します。(これらのテストケースは、PPCGメンバーのGithubプロファイルから作成されました。ありがとうございます!)
上記の3つのタスクはすべて、(各テストケースごとに)十分に電力が供給されたコンピューターで実行するのに1分未満かかります。
スコアは50個の差分すべての合計サイズ(バイト単位)に等しく、値が小さいほど優れています。プログラムでの差分のハードコーディングは許可されていません(ハードコーディングを防ぐためにテストケースを変更する権利を留保します)。diff(などdiffutils
)を生成する組み込み関数は使用できません。
4
diffとは正確には何ですか?
—
コナーオブライエン
欲しいものは何でも、本当に。非公式に、間の違いを表して、A列
—
ネイサンメリル
A
とをB
リンクの腐敗:1ベースラインインデックスによるテストケースペアの番号付け。テストケース3、13、14、15、16、17、18、19、20、21の両方のペアはすべて404です。これらの外部では、他のすべてのケースを取得できました。
—
Hウォルターズ
この質問はほとんど回答がなく、テストケースとして使用していた古いリンクの多くが機能しなくなったため、この質問を終了します。質問を更新して、必要に応じて再度開いてください。
—
ネイサンメリル
できた GISTはgist.github.com/sethhillbrand/64066935e3f8c0fac75d75edd43c9ef8です。2 番目のファイルは、テストケースの残りの40ペアのuuencodeアーカイブです。
—
セス