392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
|
|
1 | |
Найти в строке string наиболее часто встречающуюся пару символов и заменить на один новый символ31.08.2010, 20:32. Показов 5421. Ответов 17
Метки нет (Все метки)
нужно найти в строке пару символов, которые повторяются чаще всех и заменить их на один новый символ например acfghhachfjiac "ac" заменить на "X" и чтобы в итоге вышло XfghhXhfjiX
как считать строку из файла в стринг, если она содержит пробелы (нужно считать из файла строку с пробелами)
0
|
31.08.2010, 20:32 | |
Ответы с готовыми решениями:
17
Строка, найти в данной строке наиболее часто встречающуюся букву Ввести строку символов. Найти букву, наиболее часто встречающуюся в тексте. Найти наиболее часто встречающуюся букву и также вывести на экран в отдельной строке Заменить в строке пару символов на один |
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
31.08.2010, 20:39 | 2 | |||||
Mayonez, 2
1
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
31.08.2010, 20:48 | 4 |
Mayonez,
Навскидку, первое, что пришло в голову... Проходя по строке в первый раз, создать таблицу уникальных пар (т.е. в строке acfghhachfjiac уникальными парами будут ac, cf, fg, gh, hh, ha, ch, hf, fj, ji и ia). Затем для каждой пары поставить в соответствие количество раз, которое она встречается в строке (для каждой пары делаем проход по строке и считаем количество совпадений). Ну а затем в новый массив переписываем входную строку, постоянно отслеживая пару, повторяющуюся максимальное число раз, и при переписывании заменяем её на требуемый символ... Кстати, первый и второй пункты можно объединить (видим пару - проверяем, нет ли её в таблице, если нет - добавляем, а если нашли, тут же увеличиваем её счётчик и переходим к следующей паре).
0
|
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
|
|
31.08.2010, 21:50 [ТС] | 5 |
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
31.08.2010, 21:57 | 6 |
Mayonez,
Почти дописал))) Правда на Си будет, ну и с файлами я не стал заморачиваться, сделал ввод с клавиатуры, так что тебе останется только ввод-вывод переделать. Добавлено через 5 минут Кстати, а если несколько пар повторяются одинаковое число раз, и это как раз максимальное число повторений, как тогда поступить?
0
|
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
|
|
31.08.2010, 22:08 [ТС] | 7 |
заменить или любую из пар или обе но на две разные буквы
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
31.08.2010, 22:09 | 8 |
Т.е. возможно любое решение? Разрешите, я остановлюсь на первом, когда выложу код, скажу идеи, как его можно переделать под второй вариант...
0
|
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
|
|
31.08.2010, 22:11 [ТС] | 9 |
окей, давай
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
||||||
31.08.2010, 22:48 | 10 | |||||
Для, того, чтобы заменять другие пары, нужно сохранить найденное в первый раз максимальное число повторений, затем, после того, как произошла первая замена, входной строкой мы делаем получившуюся выходную (в которой один вид пар уже заменён некоторым символом), а из списка пар удаляем элемент, соответствующий заменяемой только что паре. Далее ищем в списке элемент, значение counter которого совпадает с ранее найденным максимальным значением (его менять больше не будем), и производим замену в строке уже этой пары. И это всё проделываем в цикле, пока есть элементы списка, значение counter которых совпадает с найденным в самый первый раз максимальным значением.
1
|
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
|
||||||
01.09.2010, 15:57 [ТС] | 11 | |||||
вот что получилось у меня на с+++STL
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||
01.09.2010, 17:45 | 12 | |||||
А вот что у меня получилось C++ + STL:
2
|
2 / 2 / 0
Регистрация: 30.08.2010
Сообщений: 12
|
|
02.09.2010, 10:06 | 13 |
нда... интересно, как это (замена на две разные буквы) получится с последовательностью ababababababab (ab и ba встречаются одинаково часто)
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
02.09.2010, 10:09 | 14 |
Банально - первая найденная пара - ab - будет первой в списке уникальных. При поиске пар с максимальной повторяемостью она также всплывёт первой - её-то и будем заменять... А то, что есть ещё и ba, мы и не узнаем потом, да и это нюансы, которые обычно решаются так, как я и описал выше, по принципу "кто первый встал - того и тапки"...
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
02.09.2010, 10:13 | 15 |
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
02.09.2010, 10:14 | 16 |
abababababababa
А так?
0
|
Nameless One
|
02.09.2010, 10:38
#17
|
Не по теме: silent_1991, тут ты меня и подловил :)
0
|
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
|
|
03.09.2010, 14:50 [ТС] | 18 |
0
|
03.09.2010, 14:50 | |
03.09.2010, 14:50 | |
Помогаю со студенческими работами здесь
18
Задача. В последовательности символов, оканчивающихся точкой, найти наиболее часто встречающийся символ Найти цифру наиболее часто встречающуюся в тексте Найти букву, наиболее часто встречающуюся в тексте. Составить программу, которая в произвольной строке символов находит наиболее часто повторяющийся символ. В головной программе вызвать эту подпрограмму Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |