[PAT乙级]1043. 输出PATest(20)
2017-07-26 23:59
525 查看
1043. 输出PATest(20)
原题链接给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按“PATestPATest….”这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按PATest的顺序打印,直到所有字符都被输出。
输入格式:
输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。
输出格式:
在一行中按题目要求输出排序后的字符串。题目保证输出非空。
输入样例: redlesPayBestPATTopTeePHPereatitAPPT 输出样例: PATestPATestPTetPTePePee
思路:
遍历输入的字符串,找出其中PATest各个字母的个数,然后按照顺序将这些字母组成新的字符串
代码:
#include <iostream> #include <vector> using namespace std; int main() { int P=0,A=0,T=0,e=0,s=0,t=0; string str; cin >> str; int arr[6] = {0,0,0,0,0,0};//存储各个字母个数 for(int i=0; i<str.length(); i++){ int j=0; if(str[i]=='P') j=1; if(str[i]=='A') j=2; if(str[i]=='T') j=3; if(str[i]=='e') j=4; if(str[i]=='s') j=5; if(str[i]=='t') j=6; switch(j){//switch中的表达式必须是整型、字符或枚举量值 case 1:{ arr[0]++; break; } case 2:{ arr[1]++; break; } case 3:{ arr[2]++; break; } case 4:{ arr[3]++; break; } case 5:{ arr[4]++; break; } case 6:{ arr[5]++; break; } } } int arr_MAX = arr[0]; for(int i=1; i<6; i++){ if(arr[i]>arr_MAX) arr_MAX = arr[i]; } string res = ""; for(int i=1; i<=arr_MAX; i++){ if(arr[0] != 0){ res += 'P'; arr[0]--; } if(arr[1] != 0){ res += 'A'; arr[1]--; } if(arr[2] != 0){ res += 'T'; arr[2]--; } if(arr[3] != 0){ res += 'e'; arr[3]--; } if(arr[4] != 0){ res += 's'; arr[4]--; } if(arr[5] != 0){ res += 't'; arr[5]--; } } cout << res << endl; return 0; }
相关文章推荐
- PAT 乙级 1043. 输出PATest(20) Java版
- PAT 乙级 1043. 输出PATest(20)
- PAT训练(乙级)—— 1043. 输出PATest(20)
- PAT乙级1043. 输出PATest(20)
- PAT乙级1043. 输出PATest(20)
- PAT乙级1043(C语言)-输出PATest(20)
- 1043. 输出PATest(20) PAT乙级真题
- pat 乙级 1043. 输出PATest(20)
- PAT乙级—1043. 输出PATest(20)-native
- PAT 乙级 1043. 输出PATest(20)
- 1043. 输出PATest(20)-PAT乙级
- 1043. 输出PATest(20)-浙大PAT乙级真题java实现
- 乙级 PAT 1043. 输出PATest(20)
- PAT乙级.1043. 输出PATest(20)
- PAT乙级 1043. 输出PATest(20)
- PAT-乙级-1043. 输出PATest(20)
- 1043. 输出PATest(20)-PAT乙级真题
- PAT乙级 1043. 输出PATest(20)
- PAT乙级1043. 输出PATest(20)
- PAT乙级-1043. 输出PATest(20)