|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.02.2012, 20:51 | #1 |
Регистрация: 08.02.2012
Сообщений: 2
|
Задача на строки, 1 курс.
Даны две строки. Получить строку, в которой чередуются слова первой и второй строки. Если в одной из строк число слов больше, чем в другой, то оставшиеся слова зтой строки должны быть дописаны в строку-результат.
Не могу сообразить алгоритм решения. Можно не решать ее а просто дать подсказки! Буду очень признателен! |
09.02.2012, 01:46 | #2 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
1. Продумываем, какие инструменты понадобятся для решения задачи. Например, навскидку: функция, которая умеет искать в большой строке слова. Функция, которая умеет извлекать из строки подстроку, и тп.
2. Конструируем инструменты (ну или пользуемся готовыми: http://www.cplusplus.com/reference/string/string/) 3. Уточняем алгоритм действий: как при помощи имеющихся инструментов получить нужный результат. 4. Профит! Пример: На входе: две большие строки. На выходе: одна большая строка. Инструменты: количество ОпределитьКоличествоСлов(строка_ист очник, стартовая_позиция); Конечная_позиция НайтиСлово(строка_источник, стартовая_позиция); Добавить в строку подстроку(строка_получатель, строка_источник, стартовая_позиция, конечная позиция); Алгоритм: 1. Определить количество слов в первой большой строке. 2. Определить количество слов во второй большой строке. 3. Зарезервировать память для большой строки, которая сумеет вместить в себя все данные. 4. Начать цикл: пока в одной из больших строк ещё остаются слова. Иначе: см пункт 5 ....4.1 Переключится на первую большую строчку, и вытащить из неё очередное слово ...4.2 Записать это слово в строку_получатель. Переключится на вторую большую строчку. ...4.3 см пункт 4.1 5. Переключится на другую большую строку, и дописать в строку получатель оставшиеся в ней слова . 6. Профит! |
09.02.2012, 03:29 | #3 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2Mshassium
Код:
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
09.02.2012, 10:20 | #4 | |
Регистрация: 08.02.2012
Сообщений: 2
|
Цитата:
ЗЫ pproger спасибо за код, все отлично работает, просто я многое не понял в нем, знаний не хватает, а именно еще не проходили библиотеки <iterator> и <algorithm>!!! Последний раз редактировалось Mshassium; 09.02.2012 в 10:23. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача 2-ой курс. | Molodoy hacker | Помощь студентам | 5 | 26.02.2011 10:31 |
Геометрическая задача!!! (1 курс, дельфи) | Movek | Помощь студентам | 1 | 03.10.2010 19:21 |
Странная задача С. I курс. | EniOk | Общие вопросы C/C++ | 19 | 22.06.2009 00:45 |
Задача С на курс вают | ProgramerBeatz | Общие вопросы C/C++ | 3 | 08.06.2009 02:46 |
Не вижу ошибку...помогите. 1 курс задача на Си | good_andy | Помощь студентам | 6 | 02.01.2008 10:01 |