![]() |
![]() | #21 |
СволочЪ Join Date: 08 2002 Location: Yerevan Age: 40
Posts: 357
Downloads: 0 Uploads: 0
Reputation: 0 | 0 | ![]()
я думаю имеет смысл сравнивать не символы а последовательности без учета регистра, пробелов и т.д.. Этот алгоритм конечно будет ворочаться дольше простого посимвольного сравнения, но, иногда цель оправдывает средства.
|
![]() |
![]() | #22 |
Авик Join Date: 07 2002 Location: Yerevan Age: 34
Posts: 1,348
Downloads: 2 Uploads: 0
Reputation: 9 | 0 | ![]()
А если так. Просто взять все слова из текста, и сравнивать их со словами из другого текста, без учета очередности слов, регистра, точек, и пробелов. тогда: Analgin 10mg N50 и ANALGIN N50 10MG будут идентичны. |
![]() |
![]() | #23 | |
Грустно... Join Date: 08 2002 Location: Там, где всегда идут дожди Age: 38
Posts: 21,717
Downloads: 2 Uploads: 0
Reputation: 250 | 8 | ![]() Quote:
получить массивы слов из первой и второй строчки. отсортировать их и сравнивать. при этом можно сравнивать двояко - учитывая регистр и не учитывая. Если совпадают с регистром - это ближе, чем если совпадают без регистра. Итак. Для каждого слова из первого (уже отсортированного массива) находим его место во втором массиве - сравниваем с элементами на данной позиции: если слова равны +2, если равны без учета регистра +1, если такого слова нет -1 или 0. Потом для всех неиспользованных слов из второго массива -1 или 0. Чем больше число тем похоже строки | |
![]() |