4.24腾讯笔试大家过几道?

我a了前三道,四五道蒙了百分之十😂😂,这有机会进面试吗。。。。
是软件开发的题,一共五道编程题。
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;
}




#腾讯#
全部评论
第二题两个测试用例都通过了,结果提交0%😭
1 回复 分享
发布于 2022-04-24 22:31
https://tans.fun/archives/tecent-2022-exam 写了一篇题解,欢迎评论😀
1 回复 分享
发布于 2022-04-24 22:28
楼主第一题是啥,是赌注吗
1 回复 分享
发布于 2022-04-24 22:16
说实话这个点了腾讯笔试就做样子,要招人笔试前就约了
点赞 回复 分享
发布于 2022-04-25 19:26
😭第四题超时了,第五期忘记直接打印拿个分数了,只过了前三道
点赞 回复 分享
发布于 2022-04-25 00:02
为啥质数那道题,测试样例能过,提交通过0呀
点赞 回复 分享
发布于 2022-04-24 22:33
t2我这么循环做 python只过了0.7
点赞 回复 分享
发布于 2022-04-24 22:31
第四题是连接链表 + 找链表中的最小值 + 正向和逆向链表的字典序比较,其实拆开来看都不难。比较坑的一点是不知道是不是我读题不仔细,他给的几个链表碎片在列表里的顺序就是这几个碎片在循环链表里的相对顺序,但题干里好像没说。我搞了半天不按顺序的情况,结果有一部分用例直接超时。最后试着直接按有序做就秒ac了。搞得第五题没时间做完了。。。
点赞 回复 分享
发布于 2022-04-24 22:22
看来大家都差不多三道左右😂😂
点赞 回复 分享
发布于 2022-04-24 22:10
第三题模拟为什么只过60呢,楼主求教
点赞 回复 分享
发布于 2022-04-24 22:09
有朋友知道是按照比例算得分还是全通过才有分吗?
点赞 回复 分享
发布于 2022-04-24 22:06
跟楼主一样
点赞 回复 分享
发布于 2022-04-24 22:06

相关推荐

评论
8
8
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务