算法竞赛题目练习

发布时间:2026/8/1 13:11:31
算法竞赛题目练习 题目一字符串反转与去重问题描述输入一个只包含小写字母的字符串首先将其反转然后去除反转后字符串中的重复字符保留第一次出现的字符最后输出结果字符串。输入格式一行一个长度不超过1000的字符串。输出格式一行处理后的字符串。输入样例abbac输出样例cab解释原字符串abbac反转后为cabba。去除重复字符保留首次出现后得到cab。C解答#include iostream #include string #include unordered_set using namespace std; int main() { string s; cin s; // 1. 反转字符串 reverse(s.begin(), s.end()); // 2. 去重保留首次出现 unordered_setchar seen; string result; for (char c : s) { if (seen.find(c) seen.end()) { // 如果字符未出现过 seen.insert(c); result.push_back(c); } } cout result endl; return 0; }题目二数字黑洞简单版问题描述给定一个四位正整数不足四位前面补零执行以下操作将数字的各个位数按非递增顺序排列得到一个最大数按非递减顺序排列得到一个最小数然后用最大数减去最小数得到一个新的数字。重复此过程直到得到数字6174或0。输出每一步的计算过程。输入格式一行一个四位正整数N(1000 ≤ N ≤ 9999)。输出格式每行输出一步操作格式为最大数 - 最小数 新数字直到出现6174或0为止。输入样例1234输出样例4321 - 1234 3087 8730378 8352 85322358 6174C解答#include iostream #include algorithm #include string #include iomanip using namespace std; int main() { int n; cin n; while (true) { // 将数字转换为字符串并补零至4位 string s to_string(n); while (s.length() 4) s 0 s; // 排序得到最大数和最小数 string max_s s, min_s s; sort(max_s.begin(), max_s.end(), greaterchar()); sort(min_s.begin(), min_s.end()); int max_num stoi(max_s); int min_num stoi(min_s); int diff max_num - min_num; // 输出当前步骤 cout max_num - setw(4) setfill(0) min_num setw(4) setfill(0) diff endl; if (diff 6174 || diff 0) { break; } n diff; // 更新n为差值继续循环 } return 0; }题目三统计单词中字母频率问题描述输入一行英文句子仅包含大小写字母和空格长度不超过1000统计每个字母不区分大小写出现的次数并按照字母表顺序输出出现次数大于0的字母及其次数。输入格式一行英文句子。输出格式每行输出一个字母及其出现次数格式为字母: 次数。按照字母从a到z的顺序输出。输入样例Hello World输出样例d: 1 e: 1 h: 1 l: 3 o: 2 r: 1 w: 1C解答#include iostream #include string #include cctype #include vector using namespace std; int main() { string line; getline(cin, line); // 读取整行包含空格 vectorint freq(26, 0); // 用于存储26个字母的频率 // 遍历字符串统计字母频率不区分大小写 for (char c : line) { if (isalpha(c)) { // 如果是字母 c tolower(c); // 转换为小写 freq[c - a]; // 对应位置计数加1 } } // 按字母表顺序输出频率大于0的字母 for (int i 0; i 26; i) { if (freq[i] 0) { cout char(a i) : freq[i] endl; } } return 0; }参考来源慧通教育C测试题 103263--1032675题小学生C趣味编程 2022.12.29 测试宇宙无敌PAT-A不完全考纲小学生C趣味编程 2022.12.08 第 1 次测试四大含金量高的算法证书考试