科大讯飞非凡计划嵌入式软件笔试

嵌入式未来

《嵌入式软件开发笔试与面试手册》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

1n 10^5 0ai10^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 <n200000

输出描述

如果无解,请输出-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%内容,订阅专栏后可继续查看/也可单篇购买

本专栏主要发布嵌入式软件开发相关岗位2023年(2024届)的笔试真题(嵌入式软件开发、通用软件开发、C/C++软件开发、算法工程师、数据开发、测试开发等)主要是算法编程题,其中一些岗位笔试含有对应的选择题、填空题、简单题。

全部评论

相关推荐

斑驳不同:还为啥暴躁 假的不骂你骂谁啊
点赞 评论 收藏
分享
11-09 11:01
济南大学 Java
Java抽象带篮子:外卖项目真得美化一下,可以看看我的详细的外卖话术帖子
点赞 评论 收藏
分享
昨天 11:07
河南大学 Java
宇宙厂 测开 n*15
丘丘给个offer:有后选后
点赞 评论 收藏
分享
评论
2
31
分享
牛客网
牛客企业服务