В подавляющем большинстве языков программирования существуют функции для: 1. Поиск подстроки в строке, возвращает порядковый номер первого символа подстроки в строке 2. Определение длины строки 3. Выбор части строки по заданным порядковым номерам символов 4. Конкатенация (объединение) строк Нажав клавишу F1 в среде разработки, или просто порывшись в тетрадке/учебнике/книжке/пособии можно без труда найти все эти функции, и затем всего-навсего применяем строгую логику, для успешного решения вполне сойдёт на уровне рассуждений гиббона или орангутана Впрочем, "благодаря" реформам Фурсенко, не у всех школьников ныне достижим даже уровень мышления мартышек.
Сам алгоритм такой: представим, что у нас есть две стопки карточек, на каждой карточке написано число, в каждой стопке карточки упорядочены (на верхней карточке написано число не меньшее, чем на нижней). Требуется переложить эти карточки в ряд в порядке возрастания написанных на них чисел.
Мы сравниваем числа, написанные на самых верхних карточках в каждой стопке (все числа, написанные на карточках под ними - гарантированно больше). Карточку с меньшим числом кладём на очередное место в ряду и опять сравниваем карточки сверху каждой стопки. Когда одна из стопок кончилась - выкладываем по порядку все оставшиеся карточки.