PAT乙级.1043. 输出PATest(20)
2016-09-03 11:42
316 查看
1043. 输出PATest(20)
题目给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按“PATestPATest….”这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按PATest的顺序打印,直到所有字符都被输出。
输入格式
输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。
输出格式
在一行中按题目要求输出排序后的字符串。题目保证输出非空。
输入样例
redlesPayBestPATTopTeePHPereatitAPPT
输出样例
PATestPATestPTetPTePePee
PAT链接
思路
常规哈希表代码
/** * @tag PAT_B_1043 * @authors R11happy (xushuai100@126.com) * @date 2016-9-2 23:56-00:08 * @version 1.0 * @Language C++ * @Ranking 600/884 * @function null */ #include <cstdio> #include <cstdlib> #include <cstring> const int Max = 10000; int HashTable[128]; int main(int argc, char const *argv[]) { int cnt = 0; //记录最多输出几组 char str[Max+10]; gets(str); int len = strlen(str); for(int i = 0; i<len; i++) { HashTable[str[i]]++; if(HashTable[str[i]] > cnt) cnt = HashTable[str[i]]; } for(int i = 0; i<cnt; i++) { if(HashTable['P']) { printf("P"); HashTable['P']--; } if(HashTable['A']) { printf("A"); HashTable['A']--; } if(HashTable['T']) { printf("T"); HashTable['T']--; } if(HashTable['e']) { printf("e"); HashTable['e']--; } if(HashTable['s']) { printf("s"); HashTable['s']--; } if(HashTable['t']) { printf("t"); HashTable['t']--; } } return 0; }
收获
也可以考虑将哈希表只局限在PATest这6个字符相关文章推荐
- 浙江大学PAT_乙级_1043. 输出PATest(20)
- 1043. 输出PATest(20)-浙大PAT乙级真题java实现
- 乙级 PAT 1043. 输出PATest(20)
- PAT乙级 1043. 输出PATest(20)
- PAT乙级—1043. 输出PATest(20)-native
- PAT乙级1043. 输出PATest(20)
- PAT乙级1043. 输出PATest(20)
- PAT 乙级 1043. 输出PATest(20)
- PAT乙级1043. 输出PATest(20)
- 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) Java版
- 1043. 输出PATest(20)-PAT乙级
- PAT训练(乙级)—— 1043. 输出PATest(20)
- PAT乙级1043(C语言)-输出PATest(20)
- 1043. 输出PATest(20) PAT乙级真题