荣耀软件开发工程师-嵌入式笔试 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++软件开发、算法工程师、数据开发、测试开发等)主要是算法编程题,其中一些岗位笔试含有对应的选择题、填空题、简单题。