Задача 4 / Системное программирование

Автор: Дубенков Родион Сергеевич

Алгоритм запуска программы:

  1. cd build
  2. ./dirscomparator --dir1=<путь до первой директории> --dir2=<путь до второй директории> --similarity=<процент сходства Тони>
  3. PROFIT

Пример c тестовыми директориями в репозитории: ./dirscomparator --dir1=../testdir1 --dir2=../testdir2 --similarity=30

Дизайн

В данной задаче есть один неоднозначный момент: Как считать процент похожести файлов?

Я привёл довольно сбалансированное решение с точки зрения скорости и корректности:
Я брал каждый файл и представлял его в виде мапы byte -> count.

И тогда для нахождения количества общих символов нужно пройтись по мапе и сложить все общие символы (то есть min(count1, count2)).