声网笔试 2021/09/22,不招人了?
声网笔试 2021/09/22 ,虽然是英语题目,但是这样出题,是不招人了吗?
第一题:任意构造前缀数相同的字符串;
#include<bits/stdc++.h> using namespace std; vector<string> solve(vector<int>& nums) { int n = nums.size(); vector<string> res; string sta_str = ""; for(int i = 0 ; i < 50 ; ++i) sta_str += 'a'; res.push_back(sta_str); for(int i = 0 ; i < n ; ++i) { int len = nums[i]; string tmp = ""; for(int k = 0 ; k < len ; ++k) { tmp.push_back(sta_str[k]); } char c = sta_str[len]; char cc; if(c < 'z') cc = static_cast<char>(c+1); else if(c == 'z') cc = static_cast<char>(c-1); for(int k = len ; k < 50 ; ++k) { tmp.push_back(cc); } res.push_back(tmp); sta_str = tmp; } return res; } int main() { int T; cin >> T; for(int t = 0 ; t < T ; ++t) { int n; cin >> n; vector<int> nums(n); for(int i = 0 ; i < n ; ++i) { cin >> nums[i]; } vector<string> res = solve(nums); for(int i = 0 ; i < res.size() ; ++i) cout << res[i] << endl; } return 0; }
第二题:出题的意义?
#include<bits/stdc++.h> using namespace std; int solve(int n) { if(n <= 3) return 1; if(n % 2 == 0) { return n / 2; } else { return (n-1)/2; } } int main() { int T; cin >> T; for(int t = 0 ; t < T ;++t) { int n; cin >> n; cout << solve(n) << endl; } return 0; }