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;
}
查看14道真题和解析