ZOJ-3168 字符串

3168:将给定的字符串排列为先Z再O再J再7,然后是剩余部分。

Sample Input

t7ZJ7OhO7B7O7irZtOhZdayJ77

Sample Output

ZZZOOOOJJ7777777thBirthday

思路:实际上没有排序,先统计,再过滤了一次。
#include<iostream>
using namespace std;
#include<string.h>

char str[1001];

int main()
{
	int countZ;
	int countO;
	int countJ;
	int count7;

	while(cin>>str)
	{
		countZ = 0;
		countO = 0;
		countJ = 0;
		count7 = 0;
		for(int i=0;i<strlen(str);i++)
		{
			if(str[i]=='Z')
				countZ++;
			else if(str[i]=='O')
				countO++;
			else if(str[i]=='J')
				countJ++;
			else if(str[i]=='7')
				count7++;
		}
		for(int i = 0;i<countZ;i++)
			cout<<'Z';
		for(int i = 0;i<countO;i++)
			cout<<'O';
		for(int i = 0;i<countJ;i++)
			cout<<'J';
		for(int i = 0;i<count7;i++)
			cout<<'7';
		for(int i=0;i<strlen(str);i++)
		{
			if(!(str[i]=='Z'||str[i]=='O'||str[i]=='J'||str[i]=='7'))
				cout<<str[i];
		}
		cout<<endl;
	}

}

你可能感兴趣的:(字符串)