GESP三级考试:《string 专项 训练闯关题》

张开发
2026/4/20 14:23:22 15 分钟阅读

分享文章

GESP三级考试:《string 专项 训练闯关题》
第1关寻找第一个孤独字符1、题目输入一个字符串输出第一个只出现一次的字符。如果没有输出No。1输入abaccdeff2输出b2、故事字符村里住着很多字母居民a 出现2次b 出现1次c 出现2次只有b没有双胞胎所以它最孤独3、思路先统计每个字符出现次数再从左到右找第一个次数1的字符。4、✅代码#include iostream #include string using namespace std; int main() { string s; cin s; int cnt[256] {0}; for(char c : s) cnt[c]; for(char c : s) { if(cnt[c] 1) { cout c; return 0; } } cout No; return 0; } 第2关反转字符串魔法1、题目输入字符串倒着输出。(1) 输入hello(2) 输出olleh2、故事魔法师把单词镜像翻转啦hello → olleh3、思路从最后一个字符往前输出。4、✅代码#include iostream #include string using namespace std; int main() { string s; cin s; for(int i s.size()-1; i 0; i--) cout s[i]; return 0; } 第3关统计元音精灵1、题目统计字符串中 a e i o u 的个数。1输入education2输出52、故事森林里住着5种元音精灵a e i o u数一数来了几个3、思路遍历字符串遇到元音就加1。4、✅代码#include iostream #include string using namespace std; int main() { string s; cin s; int ans 0; for(char c : s) { if(ca||ce||ci||co||cu) ans; } cout ans; return 0; } 第4关回文城堡1、题目判断字符串是否回文正读反读一样。1输入level2输出Yes2、故事回文城堡的大门只有对称密码才能打开level ✔abc ❌3、思路左右指针比较。4、✅代码#include iostream #include string using namespace std; int main() { string s; cin s; int l 0, r s.size()-1; while(l r) { if(s[l] ! s[r]) { cout No; return 0; } l; r--; } cout Yes; return 0; } 第5关大写变身术1、题目把小写字母变成大写字母。输入hello输出HELLO2、故事小写士兵经过魔法门后变成大写勇士3、思路小写字母 -32 就变大写。4、✅代码#include iostream #include string using namespace std; int main() { string s; cin s; for(char c : s) { if(c a c z) c c - 32; } cout s; return 0; } 第6关单词计数器1、题目输入一行句子统计单词数量单词之间空格分开。1输入I love Cpp2输出32、故事句子火车来了每节车厢是一个单词3、思路统计从空格后开始的新单词。4、✅代码#include iostream #include string using namespace std; int main() { string s; getline(cin, s); int cnt 0; bool inWord false; for(char c : s) { if(c ! !inWord) { cnt; inWord true; } if(c ) inWord false; } cout cnt; return 0; } 第7关最长连续相同字符1、题目输出最长连续相同字符长度。1输入aaabbccccdd2输出42、故事字符排队站岗看看谁的队伍最长3、思路记录当前连续长度更新最大值。4、✅代码#include iostream #include string using namespace std; int main() { string s; cin s; int mx 1, cur 1; for(int i 1; i s.size(); i) { if(s[i] s[i-1]) cur; else cur 1; if(cur mx) mx cur; } cout mx; return 0; } 第8关删除某字符1、题目删除字符串中所有字符a1输入banana2输出bnn2、故事国王下令所有 a 字母离开王国3、思路新建答案字符串遇到不是a才加入。4、✅代码#include iostream #include string using namespace std; int main() { string s, ans ; cin s; for(char c : s) { if(c ! a) ans c; } cout ans; return 0; } 第9关字符排序比赛1、题目把字符串字符按从小到大排序。1输入dcba2输出abcd2、故事字符运动会开始啦按字典顺序排队3、思路使用 sort 排序。4、✅代码#include iostream #include string #include algorithm using namespace std; int main() { string s; cin s; sort(s.begin(), s.end()); cout s; return 0; } 第10关密码强度检测1、题目判断字符串是否同时含有大写字母小写字母数字有则输出Strong否则输出Weak1输入Abc1232输出Strong2、故事勇士密码要通过三重考验 大写门⚔ 小写门 数字门3、思路设置3个标记变量。4、✅代码#include iostream #include string using namespace std; int main() { string s; cin s; bool A false, a false, d false; for(char c : s) { if(c A c Z) A true; else if(c a c z) a true; else if(c 0 c 9) d true; } if(A a d) cout Strong; else cout Weak; return 0; } 总结知识点1、基础操作✔ 遍历✔ 修改✔ 拼接✔ 删除2、常见算法✔ 计数✔ 查找✔ 回文判断✔ 连续统计✔ 排序3、技巧✔ 双指针✔ 标记法✔ 数组统计

更多文章