美团嵌入式软件实习笔试编程题
《嵌入式软件开发笔试与面试手册》: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%内容,订阅专栏后可继续查看/也可单篇购买
本专栏主要发布2025届嵌入式软件开发相关岗位笔试真题(嵌入式软件开发、通用软件开发、C/C++软件开发、算法工程师、测试开发等)主要是算法编程题,其中一些岗位笔试含有对应的选择题、填空题、简单题。
联想公司福利 1481人发布
查看6道真题和解析