美团点评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++编程中的基础功能开发,分别从字符串操作到数组处理,再到暴力枚举算法,展示了不同场景下代码实现的技巧。

    如果需要更多代码库扩展,可以参考标准库文档和官方指导,逐步提升编程能力。

    上一篇:美团点评2020校招前端方向笔试题
    下一篇:SUSE第四次课后作业

    发表评论

    最新留言

    关注你微信了!
    [***.104.42.241]2025年05月05日 01时15分43秒