4.24腾讯笔试大家过几道?
我a了前三道,四五道蒙了百分之十😂😂,这有机会进面试吗。。。。
是软件开发的题,一共五道编程题。
1.多个大小一致的数组,按行排列,然后竖着读取,每列连成一个数字,最前面的0去掉,然后把这些数字从小到大排序输出。
2.一个数组,把索引为非质数的值删除,直到数组只剩一个元素,输出这个元素。
3.攻防,一个数组元素为0和1,0只会攻击,1只会防御,他们的战斗力为编号,从1到n,然后找个位置i,i大于等于0小于等于n,i以及i左侧为第一阵营,剩下的为第二阵营,左侧只攻击,右侧只防御,计算最佳的i使得两个阵营对应的战斗值绝对值差最小,也就是说左侧只计算攻击值,右侧只计算防御值。
4.一个链表数组,把他拼成一个环,找一个位置切开,使得正着数或者倒着数字典序最小。没做出来,浪费好长时间。
5.第五题没来得及看,直接输出了6,百分之十。
#腾讯#
是软件开发的题,一共五道编程题。
1.多个大小一致的数组,按行排列,然后竖着读取,每列连成一个数字,最前面的0去掉,然后把这些数字从小到大排序输出。
2.一个数组,把索引为非质数的值删除,直到数组只剩一个元素,输出这个元素。
3.攻防,一个数组元素为0和1,0只会攻击,1只会防御,他们的战斗力为编号,从1到n,然后找个位置i,i大于等于0小于等于n,i以及i左侧为第一阵营,剩下的为第二阵营,左侧只攻击,右侧只防御,计算最佳的i使得两个阵营对应的战斗值绝对值差最小,也就是说左侧只计算攻击值,右侧只计算防御值。
4.一个链表数组,把他拼成一个环,找一个位置切开,使得正着数或者倒着数字典序最小。没做出来,浪费好长时间。
5.第五题没来得及看,直接输出了6,百分之十。

第一题,写的有点乱,将就看吧
#include<iostream> #include<vector> #include<string> #include<algorithm> using namespace std; int main() { int n; string s; cin >> n; vector<string> a(n); for (int i = 0; i < n; i++) { cin >> s; a[i] = s; } vector<string> b(a[0].size()); vector<int> d(a[0].size()); for (int i = 0; i < a[0].size(); i++) { string g; for (int j = 0; j < n; j++) { if (j == n - 1) { g += a[j][i]; b[i] = g; } else { g += a[j][i]; } } } for (int i = 0; i < b.size(); i++) { int j = 0; while (j<b[i].size()&&b[i][j] == '0') { j++; } if (j == b[i].size()) { d[i] = 0; } else { int o=0; b[i] = b[i].substr(j, b[i].size() - j); for (int k = 0; k < b[i].size(); k++) { int p = b[i].size() - k - 1,q=1; while (p) { q *= 10; p--; } o += (b[i][k] - '0')*q ; } d[i] = o; } } sort(d.begin(), d.end()); for (int i = 0; i < d.size(); i++) { cout << d[i] << " "; } }第二题
#include<iostream> #include<vector> using namespace std; int iszs(int i) { if (i == 1) { return false; } if (i == 2 || i == 3) { return true; } int j = 2; bool flag = true; for (; j * j <= i; j++) { if (i % j == 0) { flag = false; break; } } return flag; } int getNumber(vector<int>& a) { if (a.size() == 1) { return a[0]; } while (true) { vector<int> b; for (int i = 0; i < a.size(); i++) { if (iszs(i + 1)) { b.push_back(a[i]); } } if (b.size() == 1) { return b[0]; } //cout << b.size() << endl; a = b; } } int main() { vector<int> a = { 3,1,1,4,5,6 }; cout<<getNumber(a); }第三题
#include<iostream> #include<vector> using namespace std; int main() { long long n,g=0,f=0; string s; cin >> n; cin >> s; for (int i = 0; i < s.size(); i++) { if (s[i] == '1') { f += i + 1; } } long long minim = f; for (int i = 0; i < s.size(); i++) { if (s[i] == '0') { g += i + 1; } else { f -= i + 1; } if (minim > abs(g - f)) { minim = abs(g - f); } } cout << minim; }