荣耀软件开发工程师-嵌入式笔试 9-9

《嵌入式软件开发笔试与面试手册》https://blog.nowcoder.net/zhuanlan/jvN8gj

《软件开发笔试汇总》https://blog.nowcoder.net/zhuanlan/0oDWVm

第一题

给定两行均不为空的字符串,第一行字符串中包含了一些空白(空格、tab),第二行字符串不包含任何空白。查找第二行字符串在第一行字符串中出现的次数(匹配时忽略空白)

输入描述

1:长度小于1K的带空白字符的字符串。

2:长度小于1K的不带空白字符的字符串。

输出描述

输出匹配到的次数(如遇到连续字符如bbb,查找bb,记为匹配2).

示例1

输入

Abb ba

bb

输出

2

#include <iostream>
#include <string>
using namespace std;

int main() {
    string s1, s2;
    getline(cin, s1);
    getline(cin, s2);

    // 移除s1中的所有空白&tab字符
    string s1_no_space = "";
    for (char c : s1) {
        if (c != ' ' && c != '\t') {
            s1_no_space += c;
        }
    }

    int count = 0;
    int len2 = s2.length();
    for (int i = 0; i <= (int)s1_no_space.length() - len2; i++) {
        if (s1_no_space.substr(i, len2) == s2) {
            count++;
        }
    }

    cout << count << endl;
    return 0;
}

第二题

通信处理经常需要对信道矩阵进行共轭转置处理,信道矩阵是N*M的矩阵,共轭转置后的矩阵是M*N的矩阵,请编写代码完成功能。

输入描述

第一行矩阵行列数N M

第二行至第N+1:输入矩阵(备注:每一行有2*M个数据,相邻2个数代表复数的实部(int类型)与虚部(int类型))

输出描述

输出共轮转置矩阵为M*N

第一行至第M:输出共轭矩阵(备注:每一行有2*N个数据,相邻2个数代表复数的实部与虚部)

示例1

输入

4 2

1 2 3 4

5 6 7 8

9 10 11 12

13 14 15 16

输出

1 -2 5 -6 9 -10 13 -14

3 -4 7 -8 11 -12 15 -16

#include <iostream>
#include <vector>
using namespace std;

int main() {
    int N, M;
    cin >> N >> M;

    vector<vector<pair<int, int>>> matrix(N, vector<pair<int, int>>(M));

    for (int i = 0; i < N; i++) {
        for (int j = 0; j < M; j++) {
            int real, imag;
            cin >> real >> imag;
            matrix[i][j] = {real, imag};
        }
    }

    for (int j = 0; j < M; j++) {
        for (int i = 0; i < N; i++) {
            cout << matrix[i][j].first << " " << -matrix[i][j].second << " ";

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

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

全部评论

相关推荐

11-18 09:44
Java
小白也想要offer:简历别放洋屁,搞不还还放错了,当然你投外企除外,以上纯属个人观点
点赞 评论 收藏
分享
AFBUFYGRFHJLP:直接去美帝试试看全奖phd吧
点赞 评论 收藏
分享
评论
点赞
8
分享
牛客网
牛客企业服务