0 / 0 / 0
Регистрация: 11.01.2014
Сообщений: 39
|
||||||
1 | ||||||
Удалить из слова все повторяющиеся буквы, оставив их первые вхождения02.01.2015, 22:45. Показов 4440. Ответов 20
Метки нет (Все метки)
Условие:Дано слово. Удалить из него все повторяющиеся буквы, оставив их первые вхождения: в слове должны остаться только различные буквы.
Разработать алгоритм и программу решения задачи. Разработать пользовательский интерфейс для программы.
0
|
02.01.2015, 22:45 | |
Ответы с готовыми решениями:
20
Удалить из строки все повторяющиеся буквы, оставив только их первые вхождения Удалить из очереди все повторяющиеся слова, оставив только их первые вхождения Создать очередь, содержащую слова. Удалить из очереди все повторяющиеся слова, оставив только их первые вхождения Дано слово. Удалить из него все повторяющиеся буквы, оставив их первые вхождения, то есть в слове должны остаться только различные буквы. |
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||
02.01.2015, 23:27 | 2 | |||||
http://rextester.com/VUW69165
1
|
0 / 0 / 0
Регистрация: 11.01.2014
Сообщений: 39
|
|
02.01.2015, 23:38 [ТС] | 3 |
hoggy, Вы удалили повторяющиеся элементы, тем самым получили нужный результат. В принципе, так по условию правильнее, но если как я, перезаписать первые вхождения в новый массив? Почему всё таки в результате у меня лишь последнюю букву показывает?
И ещё одно. Когда добавляю в вашу программу перед закрывающей скобкой cin.get(); компилятор фиксирует её как ошибку. Не пойму, что с этим делать..
0
|
2442 / 1840 / 406
Регистрация: 15.12.2013
Сообщений: 8,236
|
|
02.01.2015, 23:42 | 4 |
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||
02.01.2015, 23:46 | 5 | |||||
Потому что:
ваш алгоритм не соответствует задаче: http://rextester.com/BIL8304
0
|
0 / 0 / 0
Регистрация: 11.01.2014
Сообщений: 39
|
|
02.01.2015, 23:54 [ТС] | 6 |
S_el, ничего схожего в наших кодах. Даже немного смешно. Ну ведь вообще не по условию я сделала и то не верно. Показывает только 1 символ.
hoggy, голова болит позже лучше подумаю над этим, ото не прет..А вам спасибо.
0
|
2442 / 1840 / 406
Регистрация: 15.12.2013
Сообщений: 8,236
|
|
02.01.2015, 23:57 | 7 |
0
|
0 / 0 / 0
Регистрация: 11.01.2014
Сообщений: 39
|
|
03.01.2015, 00:01 [ТС] | 8 |
S_el, скорее всего std::cin
Но я так думаю, что он везде писал std:: потому-что заранее под заголовочными файлами не написал using namespace std; Не так?
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||||||
03.01.2015, 00:07 | 9 | ||||||||||
http://rextester.com/YVKOSG6659
Потому что, если исходная строка будет:
Которых не должно быть по условию задачи.
0
|
0 / 0 / 0
Регистрация: 11.01.2014
Сообщений: 39
|
|
03.01.2015, 00:15 [ТС] | 10 |
hoggy, хм, как видно, одни и те же у меня ошибки. Я бы со строками пока вообще не связывалась. Единственное задачи эти =-= Ну ничего, всему свое время. То что алгоритм не соответствует знаю. Вам спасибо большое)
S_el, сейчас снова посмотрела на код и поняла почему cin.get(); был не верным. Благодарю за подсказку. И не догадывалась))
0
|
Комп_Оратор)
|
||||||
03.01.2015, 01:23 | 11 | |||||
0
|
221 / 166 / 47
Регистрация: 17.07.2012
Сообщений: 587
|
||||||
03.01.2015, 01:34 | 12 | |||||
1
|
03.01.2015, 13:18 | 13 | ||||||||||
А если выкинуть все лишние сущности и представить, как ту же задачу выполнял бы человек своими глазками и ручками, получаем самый простой и естественный вариант:
Ан нет, сглупил. Вот так будет без лишних сущностей:
1
|
Комп_Оратор)
|
|
03.01.2015, 17:54 | 14 |
При каждом word.erase(...) происходит же жесткая работа с памятью и объектом word? Не лучше ли создать новый объект и добавить туда всё что нужно. В крайнем случае в итоге с ним можно связать имя word. В конце концов ведь от исходного word в результирующем ничего почти и не остаётся, даже в том смысле, что оставшиеся слова в памяти расположены по большей части не там, где они были вначале. Да и это всё не важно по сравнению с тем, понятно это для Юн или нет. А она задумалась.
С наступившим!
1
|
0 / 0 / 0
Регистрация: 11.01.2014
Сообщений: 39
|
|
03.01.2015, 18:05 [ТС] | 15 |
IGPIGP, спасибо, вот это довольно понятный код для того кто не работал со строками) оочень даже.
Главное задачки будут готовы, а потом смогу спокойно без спешки изучать и практиковаться в с++.) BRcr, во дела. спасибо за труд)) Ах, ну да, ну да. Всех с наступившим!
0
|
03.01.2015, 19:13 | 17 |
Да нет, в общем-то. Перераспределения памяти не происходит, есть только сдвиг элементов последовательности, то бишь серия swap'ов от конца. При формировании новой строки сдвига нет, но периодическое перераспределение памяти при увеличении количества элементов в контейнере есть. Точно не скажу без проверки, но примерно одно и то же...
Пожалуйста. Только никакой это был и не труд... просто ждал загрузки кой-чего.) С праздничком!
1
|
0 / 0 / 0
Регистрация: 11.01.2014
Сообщений: 39
|
|
03.01.2015, 19:31 [ТС] | 18 |
BRcr, больше практики и тогда и для меня это будет не труд. Всё впереди!)
Как в одном аниме: Бухать-Бухать-Бухать-Бухать-Бухать жалко, что у меня на новый год ниче кроме водки не было, а водку не пью ) эх, печаль Добавлено через 3 минуты BRcr, не подскажете, а как определить элементы массива расположенные параллельно главной диагонали? Плиз *-*
0
|
Комп_Оратор)
|
|
03.01.2015, 19:31 | 19 |
То есть в целом всё зависит от соотношения размера строки и размера алфавита? Подозреваю, что для некитайского алфавита и достаточно большой строки работать с оригиналом, всё же невыгодно.
0
|
03.01.2015, 22:48 | 20 |
Всего лишь сдвигом счетчика строк или колонок. К примеру, если главная диагональ задается синхронным инкрементом счетчиков, инициализированных нулями, то вторичная диагональ, расположенная над главной, задается синхронным инкрементом колонок, начиная с единицы, и строк, начиная с нуля.
0
|
03.01.2015, 22:48 | |
03.01.2015, 22:48 | |
Помогаю со студенческими работами здесь
20
Одномерные массивы, удалить все повторяющиеся элементы, оставив только первые вхождения Удалить из массива повторяющиеся элементы, оставив только их первые вхождения Удалить из массива повторяющиеся элементы, оставив только их первые вхождения Удалить из массива повторяющиеся элементы, оставив только их первые вхождения (класс-контейнер вектор) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |