2019华为实习笔试题——重排字符串

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lizhentao0707/article/details/80919345
1 字符串重排

     题目
     给你一个原始字符串,根据该字符串内每个字符出现的次数,按照ASCII码递增顺序重新调整输出。
     提示
     1、原始字符串中只会出现字母和数字。
     2、注意区分大小写。
     示例1
     输入为:eeefgghhh;               输出为: efghegheh

     示例2
     输入为:22233aaabcccdd;     输出为: 23abcd23acd2ac

#include<iostream>
#include<string>
#include<map>

using namespace std;

int main()
{
	string str;
	getline(cin, str);
	int size = str.size();
	map<char, int> m;
	for (auto ch : str)
	{
		if (isalnum(ch))
		{
			m[ch]++;
		}
	}
	auto it = m.begin();
	while (size > 0)
	{
		while (it != m.end())
		{
			if (it->second > 0)
			{
				cout << it->first;
				it->second--;
				size--;
			}
			it++;
		}
		it = m.begin();
	}
	return 0;
}

展开阅读全文

没有更多推荐了,返回首页