|
31 / 31 / 6
Регистрация: 11.07.2013
Сообщений: 241
|
|
Поиск анаграмм в файле29.11.2013, 04:13. Показов 6751. Ответов 12
Метки нет (Все метки)
Здравствуйте! Такая задача:
Есть входной текстовой файл, в нем слова(какие попало и написаны как попало, а не красиво через пробел). Нужно в другой текстовый файл записать все найденные анаграммы(из одних и тех же букв, одинаковая длина, каждая буква 1 раз, регистр не учитывается): одна строка - одна группа анаграмм Пример: Вход: Мама дай мне меН йад Выход: дай йад мне меН Учитывая, что размер входного файла может быть большим и даже очень большим, хорошая ли идея: -Завести хешмапу <String, List<String>>, где String - слово, List<String> список всех анаграм для этого слова, включая его самого -Прочитать файл до конца, заполнив эту мапу -Переписывать из мапы в другой файл, если длина листа > 1 ? Может подскажете другую идею. Спасибо
0
|
|
| 29.11.2013, 04:13 | |
|
Ответы с готовыми решениями:
12
Поиск слова в файле Поиск ссылок в HTML файле Поиск в файле |
| 29.11.2013, 06:13 | ||
Составьте, к примеру, список для "никотинамидадениндинуклеотидфосфатгидрин" Задается словарь. Найти в нем все анаграммы
0
|
||
|
31 / 31 / 6
Регистрация: 11.07.2013
Сообщений: 241
|
||||
| 29.11.2013, 06:56 [ТС] | ||||
|
Добавлено через 1 минуту Добавлено через 3 минуты или я вас не понимаю
0
|
||||
|
31 / 31 / 6
Регистрация: 11.07.2013
Сообщений: 241
|
||||||
| 29.11.2013, 07:27 [ТС] | ||||||
|
вот я набросал код
Добавлено через 11 секунд
вы мне обьясните, пожалуйста, почему так как у меня плохо(в каком конкретно месте) Добавлено через 1 минуту еще вопрос: из файла все слова нужно же куда то сохранять в память, правильно? Не map дак list
0
|
||||||
|
31 / 31 / 6
Регистрация: 11.07.2013
Сообщений: 241
|
|
| 29.11.2013, 08:00 [ТС] | |
|
скачал я ради интереса мастера и маргариту ~ 0.8M, запустил прогу, читала/записывала минут 10, это долго?
0
|
|
|
462 / 462 / 71
Регистрация: 26.02.2013
Сообщений: 1,263
|
|
| 29.11.2013, 10:44 | |
Сообщение было отмечено как решение
Решение
Дошел вчера пешком до работы за 35 минут, это долго?
3
|
|
|
31 / 31 / 6
Регистрация: 11.07.2013
Сообщений: 241
|
|
| 29.11.2013, 22:45 [ТС] | |
|
0
|
|
| 30.11.2013, 02:14 | ||
Интереса ради, написал на С с сохранением промежуточных результатов на диск. Скачал M&M, конвертировал в Win-1251 (~747 Kb), обрабатывается примерно 10 сек по наручным часам. Если не использовать диск, а держать все в памяти, скорость должна вырасти минимум на порядок.
1
|
||
|
31 / 31 / 6
Регистрация: 11.07.2013
Сообщений: 241
|
|||||||||||
| 30.11.2013, 07:43 [ТС] | |||||||||||
|
да, свою ошибку с алгоритмом я понял, переделываю на другой
Добавлено через 51 минуту А подскажите пожалуйста, как из ArrayList<Parser> list1 получить ArrayList<ArrayList<String>>, где
Этот список list 1 отсортирован вот по этим строкам Например: list1 = {(pans, aups), (snap, aups), (pots, opst), (stop, opst), (tops, opst), (opt, opt)} Как мне из него получить список списков строк(списков анаграм), то есть: list2 = {<pans, snap>, <pots, stop, tops>} // если для слова не нашлась анаграмма в list1 то его не нужно заносить в список list2 Спасибо Добавлено через 59 минут разобрался, переписал алгоритм, теперь для 1М работает за 1 секундку.... Не по теме: а было 10 минут:-[ Добавлено через 3 часа 12 минут задам еще вопрос: когда я читаю из файла(предположим 10М ~1_000_000 слов) в память и использую сканер
это(сканер а не допустим BufferedReader) нормально в принципе это нормально только учитывая небольшой размер файла ну то есть, при чтении очень большого файла(ну пускай аж до 1Г) сканером нормально пользоваться или есть альтернативы лучше?(подскажите)
0
|
|||||||||||
| 30.11.2013, 10:15 | |||||||
Сканер должен просматривать входной поток и выдавать очередную лексему (при необходимости, вместе с ее позицией в потоке и размером). Все. Внутреннее устройство файла (и есть ли там вообще "строки") не имеет значения - точно так же, на вход программы можно подать EXE-файл.
Впрочем, для естественного языка можно ожидать словарь порядка 100,000 уникальных слов даже для произвольно больших файлов и, если при вставке в DB сразу проверять дубликаты, то, ценой некоторого замедления, вполне можно хранить все в RAM (считая среднюю длину слова 10 байт (не Unicode), это всего 1 Mb нетто).
1
|
|||||||
| 30.11.2013, 22:42 | |
|
Музыкой навеяло.
Словарь русских анаграмм. Составлен по большому (3,032,693) словарю лексем. В файле lexicon.469979.txt содержится отсортированный по алфавиту список всех уникальных слов. Может быть использован для быстрого просмотра/поиска. Если слово есть в лексиконе, то к нему существует анаграмма. Ex: ЯЩЕРИЦА -- ЦАРЯЩИЕ
0
|
|
| 30.11.2013, 22:42 | |
|
Помогаю со студенческими работами здесь
13
Поиск в файле Поиск слова в файле Поиск слова в файле Поиск чисел в текстовом файле
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|