声网笔试 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;
} 