|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.04.2022, 12:23 | #1 |
Пользователь
Регистрация: 14.03.2021
Сообщений: 39
|
Анограммы C++
Здравствуйте, нужно написать программу, которая ищет анограммы в строке и должна выводить эти слова. Вот моя программа, но она выводит отсортированные анограммы, а мне нужны сами эти анограммы. Строка следующая: "Hare Krishna Hare nap teachers cheaters PAN ear era hectares Krishna".
Код:
|
21.04.2022, 01:21 | #2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
А что если использовать map<string, vector<string>>, в качестве ключа использовать отсортированную строку из маленьких букв, а в значение складывать исходную строку. А потом выводить только те значения, чья длина больше одного.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
21.04.2022, 09:14 | #3 |
Пользователь
Регистрация: 14.03.2021
Сообщений: 39
|
Я тоже об этом подумал. А разве то, что будет несколько одинаковых ключей - отсортированные строки, никак не отразится на работе программы? Если это так, то может быть поменять исходную строку в ключ, а отсортированную строку в значение.
|
21.04.2022, 09:58 | #4 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Ну конечно отразится. В векторах-значениях будут находиться те строки, которые состоят из одинакового набора букв, т.е. являющиеся анаграммами.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
21.04.2022, 12:44 | #5 |
Пользователь
Регистрация: 14.03.2021
Сообщений: 39
|
Теперь получился такой код, но у меня не работает count. В чём может быть причина?
Код:
|
21.04.2022, 14:17 | #6 |
Пользователь
Регистрация: 14.03.2021
Сообщений: 39
|
Всё получилось, пришлось поменять ключи и значения местами. Также вот изменённый for:
Код:
|
21.04.2022, 14:27 | #7 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Ну если вас все устраивает в работе программы, то ладно. Хотя результат mp.count равен 0 или 1, так что дальнейший if всегда не будет срабатывать.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
21.04.2022, 22:50 | #8 |
Пользователь
Регистрация: 14.03.2021
Сообщений: 39
|
Как объяснил мне преподаватель, count в map работает только с ключами, и я в этом наглядно убедился, изначально в качестве ключа у меня стояли исходные строки, которые очевидно были разными, соответственно count насчитал для каждой 1, после поменял местами ключи и значения, теперь у меня на месте ключей стоят отсортированные строки, и count считает правильно, например, отсортированная строка из слова "teachers", при обращении к ней с помощью count он выводит 3, так как помимо неё есть ещё cheaters и hectares.
|
21.04.2022, 23:56 | #9 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Вот это меня и удивляет, так как в map ключи уникальны. Если ключ есть в map, то count вернет 1, а если нет - 0. Покажите код целиком.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|