1043. 输出PATest
来源:互联网 发布:网络婚姻网 编辑:程序博客网 时间:2024/06/03 20:01
原题简介:
给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按“PATestPATest....”这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按PATest的顺序打印,直到所有字符都被输出。
输入格式:
输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。
输出格式:
在一行中按题目要求输出排序后的字符串。题目保证输出非空。
输入样例:redlesPayBestPATTopTeePHPereatitAPPT输出样例:
PATestPATestPTetPTePePee
用一种简单明了直接的方法,一个一个读入存储计数,再输出。
#include <stdio.h>int main ( ){ char c ; int a[ 6 ] = { 0 } ; while ( ( c = getchar ( ) ) != '\n' ) { if ( c == 'P' ) a [ 0 ] ++ ; if ( c == 'A' ) a [ 1 ] ++ ; if ( c == 'T' ) a [ 2 ] ++ ; if ( c == 'e' ) a [ 3 ] ++ ; if ( c == 's' ) a [ 4 ] ++ ; if ( c == 't' ) a [ 5 ] ++ ; } int i , flag = 1 ; while ( flag ) { flag = 0; if ( a [ 0 ] ) { printf("P"); a [ 0 ] -- ; } if ( a [ 1 ] ) { printf("A"); a [ 1 ] -- ; } if ( a [ 2 ] ) { printf("T"); a [ 2 ] -- ; } if ( a [ 3 ] ) { printf("e"); a [ 3 ] -- ; } if ( a [ 4 ] ) { printf("s"); a [ 4 ] -- ; } if ( a [ 5 ] ) { printf("t"); a [ 5 ] -- ; } for ( i = 0 ; i < 6 ; i ++ ) { if ( a [ i ] != 0 ) flag = 1 ; } } return 0;}
或者直接记下读入的所有字符,找到次数最多的max,再循环max次,输出。
#include <stdio.h>int main(){ char c; int count[128] = {0}; /* for each ASCII char */ char str[] = "PATest"; /* use as index for count[] */ /* read any char and count their numbers */ while((c = getchar()) != '\n') count[(int)c]++; /* among "PATest" find the most frequent char and asign its count to max */ int max = 0; for(int i = 0; i < 6; i++) if(max < count[str[i]]) max = count[str[i]]; /* before "max" prints, print any char in "PATest" if it is still left */ while(max--) for(int j = 0; j < 6; j++) if(count[str[j]]-- > 0) putchar(str[j]); return 0;}作者:OliverLew链接:http://www.jianshu.com/p/bbed8fbdb934來源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
详情见链接
阅读全文
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)
- Spring+Mybatis配置事务管理
- LeetCode 643 Maximum Average Subarray I
- 括号配对问题(栈)
- day_09_继承
- 面向对象三大特性、五大基本原则
- 1043. 输出PATest
- C++多态性与虚函数
- ZK7+Spring4+Hibernate4框架整合并实现基本查询
- 自定义View
- CC2640R2F BLE5.0 蓝牙协议栈GAP Bond管理和LE安全连接
- IDEA 使用SVN时忽略class文件
- C++ 通过WIN32 API 获取逻辑磁盘详细信息
- 一次性计时器和间隔性计时器实现永久性计时器
- Java实现Find All Numbers Disappeared in an Array