网站主机空间用哪个好,贵州省城乡和建设厅网站首页,天津市城乡建设局网站,wordpress nginx版本文章目录 输出GPLT题目描述代码 输出GPLT
题目描述
给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序#xff0c;按GPLTGPLT…这样的顺序输出#xff0c;并忽略其它字符。当然#xff0c;四种字符#xff08;不区分大小写#xff09;的个数不… 文章目录 输出GPLT题目描述代码 输出GPLT
题目描述
给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序按GPLTGPLT…这样的顺序输出并忽略其它字符。当然四种字符不区分大小写的个数不一定是一样多的若某种字符已经输出完则余下的字符仍按GPLT的顺序打印直到所有字符都被输出。
输入格式 输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。
输出格式 在一行中按题目要求输出排序后的字符串。题目保证输出非空。
输入样例
pcTclnGloRgLrtLhgljkLhGFauPewSKgt输出样例
GPLTGPLTGLTGLGLL代码
这段C代码的作用是对输入的字符串按特定规则进行重排序规则是按照GPLT这一顺序输出字符对大小写不敏感忽略除了G/P/L/T之外的所有字符直到所有的G/P/L/T字符都输出完毕。
#includebits/stdc.h // 包含了大多数标准库的头文件
using namespace std;int n[4]; // 声明一个数组用来计数G、P、L、T各自的数量int main() {string a; // 用于存储输入的字符串cin a; // 从标准输入读取字符串// 遍历输入的字符串afor (int i 0; i a.size(); i) { // 不区分大小写统计G、P、L、T的个数if (a[i] G || a[i] g) n[0]; // 当字符为G或g时G的计数加1if (a[i] P || a[i] p) n[1]; // 当字符为P或p时P的计数加1if (a[i] L || a[i] l) n[2]; // 当字符为L或l时L的计数加1if (a[i] T || a[i] t) n[3]; // 当字符为T或t时T的计数加1}// 当G、P、L、T任意字符的计数不为0时循环继续while (n[0] ! 0 || n[1] ! 0 || n[2] ! 0 || n[3] ! 0) {// 根据 n[] 的值来进行输出if (n[0] 0) { // 如果G的计数大于0cout G; // 输出字符Gn[0]--; // G的计数减1}if (n[1] 0) { // 如果P的计数大于0cout P; // 输出字符Pn[1]--; // P的计数减1}if (n[2] 0) { // 如果L的计数大于0cout L; // 输出字符Ln[2]--; // L的计数减1}if (n[3] 0) { // 如果T的计数大于0cout T; // 输出字符Tn[3]--; // T的计数减1}}return 0; // 程序结束
}
这个程序的主要逻辑是
读入一个字符串统计其中G/P/L/T字符出现的次数对于每个字符不区分大小写。使用一个while循环条件是只要有任一字符G/P/L/T的计数不为零循环就继续。在每次循环中按照G、“P”、“L”、T的顺序检查对应字符的计数如果计数大于零则输出该字符并将对应的计数减一。循环会持续直到所有G/P/L/T字符都输出完毕。
通过上述逻辑程序能够按照题目要求输出满足条件的字符串。