PAT B1043 sortie PATest (20 minutes)

Liens Sujet : https://pintia.cn/problem-sets/994805260223102976/problems/994805280074743808

Titre Description
Étant donné une longueur maximale de 10 ^ 4, la chaîne constituée de lettres seulement. S'il vous plaît re-régler le caractère de l'ordre, selon PATestPATest ... dans cette sortie d'ordre, et ignorer d' autres caractères. Bien sûr, le nombre de six types de caractères ne sont pas nécessairement autant, si une sorte de sortie de caractères est terminée, les autres caractères basés sur l'ordre d'impression PATest jusqu'à ce que tous les caractères sont émis.

Entrée
Input est donnée une longueur de pas plus de 10 ^ 4 dans une rangée, seule chaîne non vide composée de lettres anglaises.

Sortie
en ligne par les exigences de commande de sortie de chaîne sujet. Sujet veiller à ce que la sortie ne soit pas vide.

entrée échantillon
redlesPayBestPATTopTeePHPereatitAPPT

Exemple de sortie
PATestPATestPTetPTePePee

code

#include <iostream>
#include <string>
#include <map>

using namespace std;

int main() {
	map<char, int> m;
	m['P'] = 0; m['A'] = 0; m['T'] = 0; m['e'] = 0; m['s'] = 0; m['t'] = 0; 
	char str[7] = {'P', 'A', 'T', 'e', 's', 't'};
	bool flag = true;
	string s1;
	getline(cin, s1);
	for(int i = 0; i < s1.size(); i++)
		if(s1[i] == 'P' || s1[i] == 'A' || s1[i] == 'T' || s1[i] == 'e' || s1[i] == 's' || s1[i] == 't')
			m[s1[i]]++;
	while(flag) {
		flag = false;
		for(int i = 0; i < 6; i++) {
			if(m[str[i]] > 0) {
				cout << str[i];
				m[str[i]]--;
				flag = true;
			}
		}
	}
	cout<<endl;
	return 0;
}
Publié 288 articles originaux · a gagné les éloges 12 · vues 20000 +

Je suppose que tu aimes

Origine blog.csdn.net/Rhao999/article/details/104668237
conseillé
Classement