科大讯飞非凡计划嵌入式软件笔试
【嵌入式未来】
《嵌入式软件开发笔试与面试手册》:https://blog.nowcoder.net/zhuanlan/jvN8gj
《嵌入式软件笔试-2023年真题汇总》:https://blog.nowcoder.net/zhuanlan/0oDWVm
第一题:小y删数字
给定一个长度为n的数组,数组元素为a1, a2, . . , an,每次能删除任意a的任意一位,求将所有数字变成0最少需要几步。例如103若删除第1位则变成3;若删除第2位则变成13;若删除第3位则变成10。
输入描述
第一行一个正整数n代表数组长度。接下来一行n个数第j个数代表a。
1≤n ≤10^5 0≤ai≤10^9
输出描述
输出一行一个数代表答案。
示例1
输入
5
10 13 22 100 30
输出
7
#include<iostream> #include<vector> using namespace std; int main() { int n; cin >> n; vector<int> nums(n); for (int i = 0; i < n; i++) { cin >> nums[i]; } int cnt = 0; for (auto num : nums) { while (num > 0) { // 对于每一个整数,我们检查它的每一个位是否是非零的 if (num % 10 != 0) cnt++; // 如果当前位是非零的,我们增加计数器cnt的值 num /= 10; // 将数字除以10,检查下一位 } } cout << cnt << endl; return 0; }
第二题:小红的字符串切割
小红拿到了一个字符串,她希望你帮她切割成若干子串,满足以下两个条件:
子串长度均为不小于3的奇数。
子串内部的字符全部相同。
输入描述
第一行输入一个正整数n,代表字符串长度。第二行输入一个字符串,仅由小写字母组成。
1 <n≤200000
输出描述
如果无解,请输出-1。否则按顺序输出若干个字符串,用空格隔开。
示例1
输入
8
aaabbbbb
输出
aaa bbbbb
#include <iostream> #include <vector> #include <string> using namespace std; int main() { int n; cin >> n; cin.get(); string input; getline(cin, input); vector<string> list; // 存储所有连续字符组成的子串 char pre = '.'; // 用于记录一个字符 string current; // 当前正在处理的子串 for (char c : input) { if (pre == '.' || c == pre) { // 如果字符与上一个字符相同,或者是第一个字符,就添加到current pre = c; current.push_back(c); } else { // 如果字符与上一个字符不同,则结束当前子串,开始新的子串 list.push_back(current); current.clear(); pre = c; current.push_back
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
嵌入式软件笔试-24届真题汇总 文章被收录于专栏
本专栏主要发布嵌入式软件开发相关岗位2023年(2024届)的笔试真题(嵌入式软件开发、通用软件开发、C/C++软件开发、算法工程师、数据开发、测试开发等)主要是算法编程题,其中一些岗位笔试含有对应的选择题、填空题、简单题。