首页 > 编程语言 > 详细

【算法学习记录-散列】【PAT B1043】输出PATest

时间:2021-01-25 16:16:52      阅读:32      评论:0      收藏:0      [点我收藏+]

给定一个长度不超过 1 的、仅由英文字母构成的字符串。请将字符重新调整顺序,按 PATestPATest.... 这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按 PATest 的顺序打印,直到所有字符都被输出。

输入格式:

输入在一行中给出一个长度不超过 1 的、仅由英文字母构成的非空字符串。

输出格式:

在一行中按题目要求输出排序后的字符串。题目保证输出非空。

输入样例:

redlesPayBestPATTopTeePHPereatitAPPT
 

输出样例:

PATestPATestPTetPTePePee


思路:

0、乍一看会被题目描述的“请将字符串调整顺序”“忽略其他字符”“请按PATest顺序输出”“六种字符个数不一”吓到,其实这题比之前的散列题都要简单的多

 

1、整体思路

以arr[6]统计6种字符出现的次数,再while循环,按PATest顺序输出,每输出一个字符arr[i]--,减到0时停止该字符的输出

 

2、题解代码

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<cstring>
 4 using namespace std;
 5 
 6 int main() {
 7     
 8     int arr[6];
 9     for (int i = 0; i < 6; i++) {
10         arr[i] = 0;
11     }
12     
13     char str[10010];
14     cin>>str;
15     int len = strlen(str);
16     for (int i = 0; i < len; i++) {
17         if (str[i] == P) {
18             arr[0]++;
19         } else     if (str[i] == A) {
20             arr[1]++;
21         } else     if (str[i] == T) {
22             arr[2]++;
23         } else     if (str[i] == e) {
24             arr[3]++;
25         } else     if (str[i] == s) {
26             arr[4]++;
27         } else     if (str[i] == t) {
28             arr[5]++;
29         }
30     }
31     
32     while (arr[0] != 0 || arr[1] != 0 || arr[2] != 0 || arr[3] != 0 || arr[4] != 0 || arr[5] != 0) {
33         if (arr[0] != 0) {
34             printf("P");
35             arr[0]--;
36         }
37         if (arr[1] != 0) {
38             printf("A");
39             arr[1]--;
40         }
41         if (arr[2] != 0) {
42             printf("T");
43             arr[2]--;
44         }
45         if (arr[3] != 0) {
46             printf("e");
47             arr[3]--;
48         }
49         if (arr[4] != 0) {
50             printf("s");
51             arr[4]--;
52         }
53         if (arr[5] != 0) {
54             printf("t");
55             arr[5]--;
56         }
57     }
58     
59     return 0;
60 }

 

【算法学习记录-散列】【PAT B1043】输出PATest

原文:https://www.cnblogs.com/Bananice/p/14325332.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!