荣耀软件开发工程师笔试-嵌入式 9-5
《嵌入式软件开发笔试与面试手册》:https://blog.nowcoder.net/zhuanlan/jvN8gj
《嵌入式软件笔试-2023年真题汇总》:https://blog.nowcoder.net/zhuanlan/0oDWVm
算式求解
要开发一款教育类App,帮助幼儿在识数阶段做一百以内自然数[0.99]的加减法。
屏慕上会显示“1”“2”“3”“4””“5”“6”“7”“8”“9”“0”“+”“-”“=”这些按钮,用户在按了若工按钮之后,如果按了“=”,则会把按“=”之前的字符串作为一个算式,计算结果。
中间结果或最后结果可以为负数。
输入描述
输入为一个字符串,形如“23+86-6+37+24-8-13”。
输入字符串中保证:
1.不会包含除“1”“2”“3”“4”“5”“6”“7"8”“9"“0”“+"“="之外的字符
2.长度不为0
3.不以“+”或“-”开始,不以“+"或“-”结束
4.不会出现连续两个或两个以上"+"
5.不会出现连续两个或两个以上"-"
6."+""-"不会相邻
7.操作数为范围为[0,99]
8.一定包含运算符 (“+”或“-”)
输出描述
算式结果,一个整数。
示例1
输入
1+2+99-10-10
输出
82
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int calculate(const string& s) {
int result = 0;
int num = 0;
char op = '+';
stringstream ss(s);
while (ss >> num) {
if (op == '+') {
result += num;
} else if (op == '-') {
result -= num;
}
ss >> op;
}
return result;
}
int main() {
string s;
cin >> s;
cout << calculate(s) << endl;
return 0;
}
找出升序数组中和为给定值的两个数字
输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。
如果有多对数字的和等于输入的数字,输出找到的第一对即可。
输入描述
第一行输入一个按升续排序过的整数数组,数组元素不可重复,数组最大不超过1000个元素,起始和结束用中括号。
第二行输入一个整数,表示要在第一行数组中要查找的两个数字的和。
输出描述
输出一行三个整数,第一个表示结果是否正常(0表示异常或未找到,1表示正常),第二个对应找到的数组索引小的数字,第三个对应找到的数组索引大的数字。
三个整数用单个空格隔开。
如果结果异常或未找到,后两个数字返回均为0。
示例1
输入
1 2 4 7 11 15
6
输出
1 2 4
#include <iostream>
#include <vector>
using namespace std;
vector<int> twoSum(vector<int>& numbers, int target) {
int left = 0, right = numbers.size() - 1;
while (left < right) {
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
本专栏主要发布嵌入式软件开发相关岗位2023年(2024届)的笔试真题(嵌入式软件开发、通用软件开发、C/C++软件开发、算法工程师、数据开发、测试开发等)主要是算法编程题,其中一些岗位笔试含有对应的选择题、填空题、简单题。
