@w0rkaholic

Как сравнить данные двух массивов текста?

Имеются:
1 -й файл, которому задаются патерны изъятия формы текста.

Структура 1-ого:
/dir1/dir2/folder1/ file.exec
30: debag.0
45: test1.0
1789: type.0

Данные с номерным обозначением (30: debag.) сохраняя по форме свой путь (/home/dir1/folder1/ ), должны быть сравнены с массивом 2-ого файла, который имеет вид:

/dir1/dir2/folder1/ debag.0
/dir1/dir2/folder1/ test1.0
/dir1/dir2/folder1/ type.0

В случае отсутствия искомой строки 1-ого файла в списке 2-ого, формируется 3-й файл, с занесением разницы в него:

1-й                                                2-й                                          3-й
/dir1/dir2/folder1/        file.exec                 
l30:   debag.0                             /dir1/dir2/folder1/ debag.0
45:    test1.0                             /dir1/dir2/folder1/ test1.0       
1789:  type.0                             /dir1/dir2/folder1/                                   type.0
  • Вопрос задан
  • 142 просмотра
Пригласить эксперта
Ответы на вопрос 1
akaish
@akaish
Стек Java\Android
Ммм, я в алгоритмике не очень (совсем не очень), но как по мне - сортируете второй массив и циклом выбирая из первого массива строки, приводите их к виду, ожидаемому во втором массиве (префикс пути и отбрасывание номерного обозначение) и бинарным поиском ищите вхождение этих строк. Второй массив сортируете, к примеру, quicksort'ом или сортировкой слиянием.
UPD. А еще лучше приводить во втором и первом массивах строки к единому виду, я так думаю, это в случае, если директория обычно занимает больше символов, чем название файла, отсекая префикс по первому с конца вхождению path separator char. Будет меньше проверок на совпадение символов в двух строках.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы