1043. 输出PATest
来源:互联网 发布:七龙珠同人小说知乎 编辑:程序博客网 时间:2024/06/13 22:04
给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按“PATestPATest....”这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按PATest的顺序打印,直到所有字符都被输出。
输入格式:
输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。
输出格式:
在一行中按题目要求输出排序后的字符串。题目保证输出非空。
输入样例:redlesPayBestPATTopTeePHPereatitAPPT输出样例:
PATestPATestPTetPTePePee
算法:
- 算法开始。
- 读取一个字符,如果它为换行符号则跳到
- 如果这个字符为P,则array[0]++。如果为A,则array[1]++。如果为T,则array[2]++。如果为e,则array[3]++。如果为s,则array[4]++。如果为t,则array[5]++。
- 回到第二步。
- 如果array数组元素都为零则跳到第十二步。
- 如果array[0]不为零,则输出P,array[0]--。
- 如果array[1]不为零,则输出A,array[1]--。
- 如果array[2]不为零,则输出T,array[2]--。
- 如果array[3]不为零,则输出e,array[3]--。
- 如果array[4]不为零,则输出s,array[4]--。
- 如果array[5]不为零,则输出t,array[5]--。
- 算法结束。
时间复杂度:O(n),空间复杂度O(1)。
#include <stdio.h>#include <stdlib.h>int main(void) {int* array = (int*)calloc(6, sizeof(int));char c;int flag = 0;while ((c = getchar()) != '\n') {switch (c) {case 'P': array[0]++; break;case 'A': array[1]++; break;case 'T': array[2]++; break;case 'e': array[3]++; break;case 's': array[4]++; break;case 't': array[5]++; break;default: break;}}while (array[0] || array[1] || array[2] || array[3] || array[4] || array[5]) {if (array[0]) {putchar('P');array[0]--;}if (array[1]) {putchar('A');array[1]--;}if (array[2]) {putchar('T');array[2]--;}if (array[3]) {putchar('e');array[3]--;}if (array[4]) {putchar('s');array[4]--;}if (array[5]) {putchar('t');array[5]--;}}free(array);return 0;}
0 0
- 1043. 输出PATest(20)
- 1043. 输出PATest(20)
- 1043. 输出PATest(20)
- 1043. 输出PATest(20)
- 1043. 输出PATest(20)
- 1043. 输出PATest(20)
- 1043. 输出PATest(20)
- 1043. 输出PATest(20)
- 1043. 输出PATest(20)
- 1043. 输出PATest(20)
- 1043. 输出PATest
- 1043. 输出PATest
- 1043. 输出PATest(20)
- 1043. 输出PATest(20)
- 1043. 输出PATest(20)
- 1043. 输出PATest(20)
- 1043.输出PATest(20)
- 1043. 输出PATest(20)
- linux常用命令 利用xshell上传文件
- TypeScript 学习笔记2
- localhost与127.0.0.1的区别
- neuq oj 1058: 谭浩强C语言(第三版)习题7.3 矩阵 C++
- gcc
- 1043. 输出PATest
- 百度金矿 百度矿机内测 迅雷赚钱宝 Pro QQ群 289013426
- ocx开发经验
- 数据库性能优化之SQL语句优化
- STL_set
- struts2中action接收参数的方法
- C#5.0 以Task方式实现APM
- 两种ModelAndView接的参数视图路径之间的区别
- C——1