ファイル内の重複行削除(後優先)
Posted feedbacks - C#
行データをメモリに保持してていいという条件だと理解
1 2 3 4 5 6 7 8 9 10 11 | Dictionary<string, long> table = new Dictionary<string, long>();
long number = 0L;
TextReader reader = args.Length > 0 ? new StreamReader(args[0], Encoding.Default) : Console.In;
string line = null;
while ((line = reader.ReadLine()) != null)
table[line] = number++;
SortedDictionary<long, string> list = new SortedDictionary<long, string>();
foreach (KeyValuePair<string, long> pair in table)
list.Add(pair.Value, pair.Key);
foreach (KeyValuePair<long, string> pair in list)
Console.WriteLine(pair.Value);
|


raynstard
#3422()
Rating1/1=1.00
入力されたテキストデータから重複する行をとりのぞいて、その結果を標準出力へ出力するプログラムを作成してください。
重複行の排除については、以下の仕様を満たしてください。
#4.はおまけですがある/なしで作りが変わってくると思われるので追加しました。
この問題はraynstardさんにご投稿いただきました。ご協力ありがとうございます。 ところで、素朴な実装のしかたをするとメモリ容量の数倍のサイズのすべての行が異なっているファイルを読ませたときに大変なことが起こりそうな気がしますが、そういうシビアなお題設定ではないので素朴に解いてしまって構いません。シビアなのは続編にしたいと思います。
[ reply ]