美文网首页
B1043 输出PATest (20分)

B1043 输出PATest (20分)

作者: km15 | 来源:发表于2020-01-29 19:16 被阅读0次

// B1043 输出PATest (20分).cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
/*
考察:
1、哈希+给出N个字符,判断是这N个字符内的+如何循环输出

编程思想:
1、hash增加,
2、然后按照这几个字母的顺序输出,输出完减减直至完

关键,如果保证顺序呢,hash应该只开6个,对,只保证6个,6个if else_if

统计一个Num,然后6个if else_if。。。减去num,知道num为0

learn && wrong:
1、现在就是不够细节,才会写到后面出错(以后可以再求精一点)
2、为了不重复写判断str[i]是否6个字符内,不如写个char dict,来判断
3、如何连续的输出PAT。。。是个问题啊,输出第一个元素,第二个元素,如果hash[i]>0,输出对应的dict,并且hash[i]--,sum也--
4、直接对原字符串反复循环会超时
5、10的四次,写成了3次,错了一组
*/

#include <iostream>
#include <cstring>
using namespace std;

char str[10010];
int hash1[6] = { 0 };
char dict[6] = { 'P','A','T','e','s','t' };

int main()
{
    cin >> str;
    int len = strlen(str);
    int num = 0;

    for (int i = 0;i < len;++i) {
        for (int j = 0;j < 6;++j) {
            if (str[i] == dict[j]) {
                hash1[j]++;
                num++;
            }
        }
    }

    while (num > 0) {
        for (int i = 0;i < 6;++i) {
            if (hash1[i] > 0) {
                cout << dict[i];
                hash1[i]--;
                --num;
            }
        }
    }
    return 0;
}

相关文章

网友评论

      本文标题:B1043 输出PATest (20分)

      本文链接:https://www.haomeiwen.com/subject/eekbthtx.html