華爲OJ——字符串排序

#include <cstdio>
#include <vector>
#include <iostream>
#include <string>
#include <cctype>
#include <cstring>
#include <queue>

using namespace std;

#define MAX_NUM 	10050

vector<char> DATA[26];
char ans[MAX_NUM];
queue<char>Q;

int main(void)
{
	string str ;
	int i ;
	int j ; 
	 
	//freopen("input.txt" , "r" , stdin);
	
	getline(cin , str );
	
	memset(ans , 0 , sizeof(ans));
	for( i = 0 ; i < str.length() ; i++)
	{
		char ch = str[i];
		
		if( isalpha(ch))
		{
			DATA[ tolower(ch)-'a' ].push_back(ch);
		}
		else
		{
			ans[i] = ch ;
		}
	}
	
	for( i = 0 ; i < 26 ; i++)
	{
		for( j = 0 ; j < DATA[i].size() ; j++)
		{
			char ch = DATA[i][j];
			Q.push(ch);
		}
	}
	
	for( i = 0 ; i < str.length();i++)
	{
		//可以放入 
		if( ans[i] == 0)
		{
			char ch = Q.front();
			Q.pop();
			ans[i] = ch ;
		}
	}
	ans[i] = '\0';
	
	printf("%s\n" , ans);
	
	return 0 ;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章