1043 输出PATest (20 分)
题目:1043 输出PATest (20 分)
给定一个长度不超过 1 的、仅由英文字母构成的字符串。请将字符重新调整顺序,按
PATestPATest....这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按 PATest 的顺序打印,直到所有字符都被输出。输入格式:
输入在一行中给出一个长度不超过 1 的、仅由英文字母构成的非空字符串。
输出格式:
在一行中按题目要求输出排序后的字符串。题目保证输出非空。
输入样例:
redlesPayBestPATTopTeePHPereatitAPPT
输出样例:
PATestPATestPTetPTePePee
思路:
- 遍历整个字符串,计算各字符的个数。
- 循环判断。将字符按顺序判断,个数不为0则输出。
代码:
#include <cstdio>
#include <cstring>
#include <iostream>
#include <sstream>
#include <cmath>
#include <algorithm>
#include <string>
#include <stack>
#include <queue>
#include <vector>
#include <map>
using namespace std; int main()
{
string str;
cin >> str;
int P, A, T, e, s, t;
P = A = T = e = s = t = ;
for(int i = ; i < str.length(); i++)
{
if(str[i] == 'P')
P++;
else if(str[i] == 'A')
A++;
else if(str[i] == 'T')
T++;
else if(str[i] == 'e')
e++;
else if(str[i] == 's')
s++;
else if(str[i] == 't')
t++;
}
while()
{
if(P)
{
printf("P");
P--;
}
if(A)
{
printf("A");
A--;
}
if(T)
{
printf("T");
T--;
}
if(e)
{
printf("e");
e--;
}
if(s)
{
printf("s");
s--;
}
if(t)
{
printf("t");
t--;
}
if(P == && A == && T == && e == && s == && t == )
break;
}
return ;
}
总结:
思路有简单有复杂,全看人脑回路怎么想,把问题简单化的脑子是好脑子,复杂化的容易给脑子产生负担。但是思路简单了,打出的代码不一定是简单的代码,如何把代码打得跟思路一样简单也需要时间磨练。
一看完题目想到的就是遍历字符串,遇到P先输出以此类推,然后输出过的做上标记不再重复输出,但是感觉这样子的话,代码实现起来好像很麻烦,于是就想那可以加个计数,这样就不用那么麻烦的逐一标记了。但是怎么感觉自己还是想的有点麻烦,因为我一直想着输出的时候是要用到原字符串的!后来看到大神的代码思路后,恍然大悟,这题还只是个简单题,要求没那么多,既然只是有多少个全部输出,又计数了,那么只要判断有没有把字符们全部按要求的顺序输出就可以了,果然还是想麻烦了!于是就有了这样的代码。
1043 输出PATest (20 分)的更多相关文章
- PAT Basic 1043 输出PATest (20 分)
给定一个长度不超过 的.仅由英文字母构成的字符串.请将字符重新调整顺序,按 PATestPATest.... 这样的顺序输出,并忽略其它字符.当然,六种字符的个数不一定是一样多的,若某种字符 ...
- 1043 输出PATest (20 分)C语言
给定一个长度不超过 10^4的.仅由英文字母构成的字符串.请将字符重新调整顺序,按 PATestPATest- 这样的顺序输出,并忽略其它字符.当然,六种字符的个数不一定是一样多的,若某种字符已经输 ...
- PAT (Basic Level) Practice (中文)1043 输出PATest (20 分)
给定一个长度不超过 1 的.仅由英文字母构成的字符串.请将字符重新调整顺序,按 PATestPATest.... 这样的顺序输出,并忽略其它字符.当然,六种字符的个数不一定是一样多的,若某种字符已经输 ...
- PAT Basic 1043 输出PATest (20分)[Hash散列]
题目 给定⼀个⻓度不超过10000的.仅由英⽂字⺟构成的字符串.请将字符重新调整顺序,按"PATestPATest-."这样的顺序输出,并忽略其它字符.当然,六种字符的个数不⼀定是 ...
- PAT 1043 输出PATest(20)(代码+思路)
1043 输出PATest(20)(20 分) 给定一个长度不超过10000的.仅由英文字母构成的字符串.请将字符重新调整顺序,按"PATestPATest...."这样的顺序输出 ...
- PAT-乙级-1043. 输出PATest(20)
1043. 输出PATest(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一个长度不超过10000 ...
- 1043. 输出PATest(20)
1043. 输出PATest(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一个长度不超过10000 ...
- PAT 乙级 1043 输出PATest(20) C++版
1043. 输出PATest(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一个长度不超过10000 ...
- PAT 1043. 输出PATest(20)
给定一个长度不超过10000的.仅由英文字母构成的字符串.请将字符重新调整顺序,按"PATestPATest...."这样的顺序输出,并忽略其它字符.当然,六种字符的个数不一定是一 ...
随机推荐
- java 实现递归实现tree(2)
import com.google.common.collect.Lists; import org.springframework.cglib.beans.BeanCopier; import ja ...
- vue多选验证
vue select 多选 验证 <FormItem :prop="'formList.'+index+'.name'" label="姓名" :rule ...
- Java Properties基础知识总结
在Java语言中,使用一种以.properties为扩展名的文本文件作为资源文件,该类型的文件的内容格式为类似: some_key=some_value #注释描述 还有一种是使用xml文件保存项目的 ...
- RegressionTree(回归树)
1.概述 回归树就是用树模型做回归问题,每一片叶子都输出一个预测值.预测值一般是该片叶子所含训练集元素输出的均值, 即
- 注册登录页面修订-Python使用redis-手机验证接口-发送短信验证
登录页面修订 views.Login.vue <template> <div class="login box"> <img src="@/ ...
- mysql 获取数据库和表结构信息
SELECT * FROM information_schema.`TABLES` where TABLE_SCHEMA = '数据库名';SELECT * FROM information_sche ...
- 前端快速构建神器vue-cli,windows下安装并且构建前端项目
1.nodejs官网http://nodejs.cn/下载安装包,傻瓜式安装即可 2.dos命令查询node的版本 node -v 查询版本号 npm -v 查询npm包管理版本 3.安装国内镜像 n ...
- Linux文件共享的实现方式
前两天跟老师去北京开了一个会议,好久没学习了,今天才回学校,其中的辛酸就不说了.来正文: 1.什么是文件共享 (1).文件共享就是同一个文件(同一个文件指的是同一个inode,同一个pathname) ...
- 4.15 每周作业 —— 简单DP
免费馅饼 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submissi ...
- typescript-学习使用ts-3
函数 函数参数 参数及返回值类型 function add(x: number, y: number): number { return x + y } 可选参数 function add(x: nu ...