美团嵌入式软件实习笔试编程题
《嵌入式软件开发笔试与面试手册》:https://blog.nowcoder.net/zhuanlan/jvN8gj
《嵌入式软件笔试-2023年真题汇总》:https://blog.nowcoder.net/zhuanlan/0oDWVm
1.小美点外卖
小美是美团外卖的忠实用户,她经常去美团外卖 app 上面点外卖,因为会员红包的性价比太高啦!
现在小美点了若干道菜,她希望你计算一个订单的总价。你能帮帮她吗?
输入描述
第一行输入一个正整数n,代表菜品总数。
第二行输入n个正整数ai,代表每道菜的价格。
第三行输入两个正整数x和y,x代表满减的价格,y代表红包的价格。
1<=n<=10^5
1<=x,y,ai<=10^9
保证所有的和大于,保证会用到满减
输出描述
一个正整数,代表小美最终应付的钱数。
示例 1
输入
4
10 20 10 20
25 10
输出
25
说明
四个菜一共 60 元,满减减掉了 25 元,再用一个 10 元的红包,因此需要付 25 元。
#include <iostream> using namespace std; int main() { int num; long long sum = 0; cin >> num; for (int i = 0; i < num; i++) { long long temp; cin >> temp; sum += temp; } long long l1, l2; cin >> l1 >> l2; sum = sum - l1 - l2; cout << sum << endl; return 0; }
2.小美的合法单词
小美定义以下三种单词是合法的:
- 所有字母都是小写。例如:good
- 所有字母都是大写。例如:APP
- 第一个字母大写,后面所有字母都是小写。例如:Alice
现在小美拿到了一个单词,她每次操作可以修改任意一个字符的大小写。小美想知道最少操作几次可以使得单词变成合法的?
输入描述
一个仅由大写字母和小写字母组成的字符串,长度不超过10^5。
输出描述
一个整数,代表操作的最小次数。
示例 1
输入
AbC
输出
1
说明
变成 ABC 或者 Abc 均可。只需要一次操作。
#include <iostream> #include <string> #include <algorithm> using namespace std; int main() { string s; getline(cin, s); int small = 0, big = 0; int res = s.length(); for (size_t i = 0; i < s.length(); ++i) { if(s[i] >= 'a' && s[i] <= 'z') small++; else if(s[i] >= 'A' && s[i] <= 'Z') big++; } int temp = s.length(); if(s[0] >= 'A' && s[0] <= 'Z') temp = s.length() - 1 - small; res = min({small, big, temp}); // 使用min函数计算三个数中的最小值 cout << res << endl; return 0; }
3、翻倍元素
小美拿到了一个数组,她每次操作会将除了第x个元素的其余元素翻倍,一共操作了q次。请你帮小美计算操作结束后所有元素之和。
由于答案过大,请对10^9+7取模。
输入描述
第一行输入两个正整数n,q,代表数组的大小和操作次数。 第二行输入n个正整数ai,代表数组的元素。 第三行输入一个正整数q,代表操作的次数。 接下来的q行,每行输入一个正整数xi,代表第i次操作未被翻倍的元素。 1<=n,q<=10^5 1<=xi<=n 1<=ai<=10^9
输出描述
一个整数,代表操作结束后所有元素之和模10^9+7的值。
示例
输入
4 2 1 2 3 4 1 2
输出
34
说明
[1,4,6,8] [2,4,12,16] 34
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
本专栏主要发布2024年(2025届)嵌入式软件开发相关岗位笔试真题(嵌入式软件开发、通用软件开发、C/C++软件开发、算法工程师、测试开发等)主要是算法编程题,其中一些岗位笔试含有对应的选择题、填空题、简单题。