概述
用到的知识:vector向量和sort函数
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
string s1, s2,s3;
while (cin >> s1 >> s2)
{
s3 = s1 + s2;
vector<char> s4, s5;
for (int i = 0; i < s3.length(); i++)
{
if ((i + 1) % 2 == 0)
{
s5.push_back(s3[i]);
}
else
{
s4.push_back(s3[i]);
}
}
sort(s4.begin(), s4.end());
sort(s5.begin(), s5.end());
int len = s3.length();
s3.clear();//清空s3中的元素,但不回收空间
for (int i = 0,m=0,n=0; i < len; i++)
{
if ((i + 1) % 2 == 0)
{
s3.push_back(s5[m]);
m++;
}
else
{
s3.push_back(s4[n]);
n++;
}
}
for (int i = 0; i < len; i++)
{
if (s3[i] >= '0' && s3[i] <= '9')
{
switch (s3[i])
{
case '0':s3[i] = '0'; break;
case '1':s3[i] = '8'; break;
case '2':s3[i] = '4'; break;
case '3':s3[i] = 'C'; break;
case '4':s3[i] = '2'; break;
case '5':s3[i] = 'A'; break;
case '6':s3[i] = '6'; break;
case '7':s3[i] = 'E'; break;
case '8':s3[i] = '1'; break;
case '9':s3[i] = '9'; break;
default:
break;
}
}
else if(s3[i] >= 'a' && s3[i] <= 'f')
{
switch (s3[i])
{
case 'a':s3[i] = '5'; break;
case 'b':s3[i] = 'D'; break;
case 'c':s3[i] = '3'; break;
case 'd':s3[i] = 'B'; break;
case 'e':s3[i] = '7'; break;
case 'f':s3[i] = 'F'; break;
default:
break;
}
}
else if (s3[i] >= 'A' && s3[i] <= 'F')
{
switch (s3[i])
{
case 'A':s3[i] = '5'; break;
case 'B':s3[i] = 'D'; break;
case 'C':s3[i] = '3'; break;
case 'D':s3[i] = 'B'; break;
case 'E':s3[i] = '7'; break;
case 'F':s3[i] = 'F'; break;
default:
break;
}
}
}
cout << s3 << endl;
}
return 0;
}
最后
以上就是欣喜麦片为你收集整理的刷题:华为机试 HJ30 字符串合并处理的全部内容,希望文章能够帮你解决刷题:华为机试 HJ30 字符串合并处理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复