题目描述
给定两个字符串S1和S2,合并成一个新的字符串S。 合并规则为,S1的第一个字符为S的第一个字符,将S2的最后一个字符作为S的第二个字符; 将S1的第二个字符作为S的第三个
字符,将S2的倒数第二个字符作为S的第四个字符,以此类推。
输入描述:
包含多组测试数据,每组测试数据包含两行,代表长度相等的两个字符串S1和S2(仅由小写字母组成,长度不超过100)。
输出描述:
合并后的新字符串S
分析
方法一:两个字符串长度相等,不用真的合并成一个字符串,依次输出字符就行
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main(){
string s1, s2, s;
while(cin >> s1 >> s2){
// reverse(s2.begin(), s2.end());
for(int i = 0; i < s1.size(); i++){
cout << s1[i] << s2[s1.size() - i - 1];
}
cout << endl;
}
return 0;
}
方法二:
合并成一个字符串再输出,用函数reverse(s2.begin(), s2.end())
将s2反转一下更好处理,不反转也行,参照方法一
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main(){
string s1, s2, s;
while(cin >> s1 >> s2){
reverse(s2.begin(), s2.end());// 反转s2
for(int i = 0; i < s1.size(); i++){
s += s1[i];
s += s2[i];
}
for(int i = 0; i < 2 * s1.size(); i++){
cout << s[i];
}
cout << endl;
}
return 0;
}