Задача
Заданы две одинаковые по длине строки. Построить новую строку, в которой на четных местах расположены элементы первой строки, а на нечетных – элементы второй строки.
Тесты
Ввод | Вывод |
abc
012 |
a0b1c2 |
0123
0123 |
00112233 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include <iostream> using namespace std; int main() { string s1; cin>>s1; string s2; cin>>s2; string s; for(int i=0;i<s1.length();i++) { s=s+s1[i]+s2[i]; } cout<<s<<endl; return 0; } |
Ответ конечно верный (если автор задачи имел в виду именно такое соединение двух строк). Но цикл в котором s=s+s1[i]+s2[i]; (кстати, почему не «+=» ?) очень не эффективно решает задачу — постоянно все переписывается на новое место. Вы добились квадратичной сложности для простой линейной операции. А зачем? Вам ведь заранее известна длина итоговой строки.
Зачитываю, но оценка сильно снижена.