题解 | #字符串合并处理#

字符串合并处理

https://www.nowcoder.com/practice/d3d8e23870584782b3dd48f26cb39c8f

// HJ31 字符串合并处理.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
#include<iostream>
#include<bits/stdc++.h>

using namespace std;

char a[] = { "0123456789abcdefABCDEF" };
char b[] = { "084C2A6E195D3B7F5D3B7F" };

class Solution {
public:
	string numChange(string& s);
};

string Solution::numChange(string& s)
{
	for (int i = 0; i < s.size(); i++)
	{
		if (isdigit(s[i]))
		{
			s[i] = b[s[i] - '0'];
		}
		else if (s[i]>='a'&&s[i]<='f')
		{
			s[i] = b[s[i] - 'a' + 10];
		}
		else if (s[i]>='A'&&s[i]<='F')
		{
			s[i] = b[s[i] - 'A' + 16];
		}
	}
	return s;
}

int main()
{
	Solution a;
	string s1, s2, str;
	cin >> s1 >> s2;
	str += s1;
	str += s2;
	string v1;
	string v2;
	for (int i = 0; i < str.size(); i++)
	{
		if (i % 2 == 0)
		{
			v1.push_back(str[i]);
		}
		else
		{
			v2.push_back(str[i]);
		}
	}
	sort(v1.begin(), v1.end());
	sort(v2.begin(), v2.end());
	for (int i = 0,k=0,j=0; i < str.size(); i++)
	{
		if (i % 2 == 0)
		{
			str[i] = v1[k++];
		}
		else if(i%2==1)
		{
			str[i] = v2[j++];
		}
	}
	//cout << str << endl;
	cout << a.numChange(str) << endl;
	return 0;
}

全部评论

相关推荐

Aurora23:属于挂一半,暂时进池子了,隔一段时间没有其他组捞的话就彻底结束了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务