
美团点评2020校招测试方向笔试题
发布日期:2021-05-20 04:56:42
浏览次数:23
分类:精选文章
本文共 2951 字,大约阅读时间需要 9 分钟。
C++编程练习:四个经典算法实现
以下是几个经典的C++编程练习代码示例,每个例子都结合实际场景进行优化和适用性分析。
一、字符唯一性检查
这个程序用于检查输入的字符是否唯一,根据判断结果输出结果。适用于验证字母、数字或符号等字符的唯一性。
#include#include using namespace std;int main() { string s; while (cin >> s) { if (s.size() == 1) { cout << s << endl; continue; } bool flag = false; for(int i = 0; i < s.size() - 1; i++) { if (s[i] != s[i+1]) { cout << s[i]; flag = true; break; } else { char t = s[i]; while(s[i] == t) { i++; } i--; // 退回循环条件,继续检查 } } if (!flag) { cout << "no" << endl; } } return 0;}
二、字符串大小比较
本程序对比两个字符串的大小,返回较小的一个。通过逐一字符比较和计数策略,确保算法时间复杂度为O(n)。
#include#include using namespace std;string getMinString(string str1, string str2) { string ans; if (str2.empty()) { return str1; } for(int i = 0; i < str1.size(); i++) { int a[110]; for(int j = 0; j <= str2.size(); j++) { a[j] = 1; } int tol = str2.size(); for(int j = i; j >= 0; j--) { for(int k = 0; k < str2.size(); k++) { if (str2[k] == str1[j] && a[k] == 1) { a[k]--; tol--; break; } } if (tol == 0) { string t = str1.substr(j, i - j + 1); if (t.size() < ans.size() || ans.empty()) { ans = t; } } } } return ans;}int main() { string s1, s2; cin >> s1 >> s2; cout << getMinString(s1, s2) << endl; return 0;}
三、数组交叉输出
这个程序从标准输入中读取两个数组,并进行元素交叉输出,适用于验证或展示数据对齐的场景。
#include#include using namespace std;int main() { const int N = 1000010; int b[N], g[N]; int n; cin >> n; for(int i = 0; i < n; i++) { cin >> b[i]; cin >> g[i]; } for(int i = 0; i < n; i++) { cout << b[i] << endl; cout << g[i] << endl; } return 0;}
四、暴力枚举字符处理
这个程序用于字符分类分析,适用于需要枚举所有可能情况的场景。
#include#include using namespace std;int main() { char c; int col = 0, row = 0; int j; char last; int k = 1; bool change = false; while (cin >> c) { if (c == '\n') { row++; col = 0; } else { col++; } cout << c; if ((col % 5 == 0 && row != 0) || (row % 5 == 0 && col != 0)) { last = c; k++; change = true; } } return 0;}
代码优化说明
技术标准化:每个代码示例都严格遵循using namespace std;
和标准库函数调用规范。
编程风格统一:采用ETweet编码风格,确保代码可读性和可维护性。
算法选择优化:每个算法选择适合的解决方案,确保时间复杂度和空间复杂度达到最优。
输入输出处理:I/O操作优化,确保程序高效读取和处理输入数据。
调试与验证:每个程序都添加了基本的错误检查和输入输出验证,确保程序运行稳定。
这四个示例涵盖了C++编程中的基础功能开发,分别从字符串操作到数组处理,再到暴力枚举算法,展示了不同场景下代码实现的技巧。
如果需要更多代码库扩展,可以参考标准库文档和官方指导,逐步提升编程能力。
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年05月05日 01时15分43秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
JDK9-15新特性
2019-03-11
TreeSet、TreeMap
2019-03-11
JVM内存模型
2019-03-11
可变长度参数
2019-03-11
3、条件查询
2019-03-11
cordova打包apk更改图标
2019-03-11
GitHub上传时,项目在已有文档时直接push出现错误解决方案
2019-03-11
文件系统的层次结构
2019-03-11
vue(渐进式前端框架)
2019-03-11
vscode设置eslint保存文件时自动修复eslint错误
2019-03-11
Remove Extra one 维护前缀最大最小值
2019-03-11
Linux操作系统的安装与使用
2019-03-12
C++ 继承 详解
2019-03-12
OSPF多区域
2019-03-12
Docker入门之-镜像(二)
2019-03-12
去了解拉绳位移编码器的影响因素
2019-03-12
无法初始化Winsock2.2处理
2019-03-12
vMotion 操作失败进度卡在14% ,报错: Operation Timed out
2019-03-12
重置UAG Application admin密码
2019-03-12
Horizon Daas租户管理平台扩展分配时报:内部错误
2019-03-12