【嵌入式未来】  《嵌入式软件开发笔试与面试手册》: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
点赞 2
评论 0
全部评论

相关推荐

醉蟀:你不干有的是人干
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
08-01 18:38
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务