您的位置:首页 > 其它

1043. 输出PATest(20)

2017-04-06 08:30 232 查看

本题要求:

给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按“PATestPATest….”这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按PATest的顺序打印,直到所有字符都被输出。

输入格式:

输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。

输出格式:

在一行中按题目要求输出排序后的字符串。题目保证输出非空。

输入样例:

redlesPayBestPATTopTeePHPereatitAPPT

输出样例:

PATestPATestPTetPTePePee

解题思路 :

先将6个字符的个数记住。接着按顺序输出即可。

代码 :

#include<iostream>

using namespace std;

int main() {
int num[6] = {0};
char str[10001];
cin.getline(str, 10001);
for (int i = 0; str[i] != '\0'; i++) {
switch(str[i]) {
case 'P':
num[0]++;
break;
case 'A':
num[1]++;
break;
case 'T':
num[2]++;
break;
case 'e':
num[3]++;
break;
case 's':
num[4]++;
break;
case 't':
num[5]++;
break;
}
}
while (true) {
bool flag = true;
for (int i = 0; i < 6; i++) {
if (num[i] != 0) {
switch(i) {
case 0:
cout << 'P';
break;
case 1:
cout << 'A';
break;
case 2:
cout << 'T';
break;
case 3:
cout << 'e';
break;

a22c
case 4:
cout << 's';
break;
case 5:
cout << 't';
break;
}
num[i]--;
flag = false;
}
}
if (flag) {
break;
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: