![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин Подтвердите свой е-майл
Регистрация: 27.04.2008
Сообщений: 179
|
![]()
Здравствуйте.
У меня такая задача: нужно найти среди N слов количество разных(одинаковые они тогда, когда перестановкой литер одного слова можна получить другое и их длинны одинаковы) n<=20000 Нпрример N=5; список слов: slovo hello olovo ehlol yes Вот мой код: Код:
Спасибо.
www.programmer.uaforums.net - Український форум програмістів.
www.satellite.ipsys.net - Український форум супутникового телебачення. |
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Делал подобное в колледже, там слова превращал в хеши, тогда получалась строка которая независимот от пререстановки букв не менялась, потом тупо сравнивал хеши, вот только формулу уже не помню...
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 22.03.2007
Сообщений: 24
|
![]()
Есть дава предложения:
1. Упорядочить во всех словах буквы, а потом сравнить. 2. Сложить все буквы в слове и сравнивать числа. В общем случае однозначного соответствия между исходными данными и хеш-кодом нет. Поэтому существует множество массивов данных, дающих одинаковые хеш-коды. wikipeda.org
Не всё получается так, как придумал,
Но разве за это должно быть стыдно!?! ![]() Последний раз редактировалось Minotavr_x86; 06.03.2009 в 18:00. |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 15.01.2009
Сообщений: 69
|
![]()
Если дать ограничение на понятие «слова», как последовательность 'a'..'z', то любое слово однозначно задает 26-элементную последовательность целых чисел, при этом "равные" слова дают одинаковую последовательность, а "разные" — разную (например, если в первое число дает количество букв "А", второе — "В" и т.д.)
Тогда еще при чтение можно сформировать (преобразовать) такие последовательности (по сути, массивы) для каждого слова и под конец устроить сравнения полученых последовательностей, которое будет в любом случая намного быстрее, чем попарный запуск function can_word(s1,s2 : string) : boolean;
Silence is of great value...
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ВКЛЮЧАЯ НАУШНИКИ, ЗВУК ИСХОДИТ И ИЗ ДИНАМИКА ТОЖЕ.ХОТЯ ДОЛЖЕН ОТКЛЮЧАТЬСЯ | S82 | Помощь студентам | 7 | 06.02.2009 21:35 |