首页 > 字节跳动2021提前批笔试-20200620
头像
是珊珊呐~
编辑于 2020-06-23 14:54
+ 关注

字节跳动2021提前批笔试-20200620

六道编程题,题目难度还好,题型覆盖很全,又一次感觉到自己很弱鸡鸡,不能用本地调试,不小心按到一次,就被记录了,吓个半死。然后程序一直有问题,很难受。最近为了弄论文,手有些生疏了,还是怪自己准备不足。只过了两道题,真的很难受。
第一道:相邻的单链表翻转
题目:将一个单项链表中,每两个节点进行翻转
输入:1->2->3->4->5->6
输出:2->1->4->3->6->5
这道题是不会,没有自己完全写过单链表,后面要加强。
链表这块我自己实在是没有写过,不是很会,网上找了一个代码,基本实现功能。大家可以参考一下。

第二道:找出唯一一个只出现过一次的数字。
一个非连续的递增数组,所有的数字会连续出现两遍,只有一个数字出现一遍,请找出这个数字
输入:1,1,2,2,5,6,6,7,7
输出:5
#include<iostream>
#include<string>

using namespace std;
int main()
{
	string str;
	cin >> str;
	int len = str.size();
	str[len] = ',';//如果不加这一步,后面会少进一次else,结果是最后一个数未参与运算,测试用例只过60%
	int num = 0;
	int n;
	int help = 0;
	for (int i = 0; i <= len; i++)
	{
		if (str[i] != ',')
		{
			num = num * 10 + str[i]-'0';
		}
		else
		{
			n = num;
			num = 0;
			help = help ^ n;

		}
	}
	cout << help << endl;
	return 0;
}


这道题就是异或运算。

第三道:找零的最小方案(给一些特定的零钱,输出张数最小的方案。)
题目:给定不同面额的硬币coins,和一个总金额change.用最小的硬币数量。如果没有组合达到,返回-1.
输入1:1,2,5;11
输出1:3(5+5+1)

输入2:2;3
输出2:-1

第四道:一个数,奇数+1,偶数减半,直到最后为1,一共操作了几次。
#include<iostream>
using namespace std;
int main()
{
	int num, n = 0;
	cin >> num;
	if (num % 2 == 1)
	{
		num += 1;
		n++;
	}
	else
	{
		num /= 2;
		n++;
	}

	cout << n << endl;
	return 0;
}



第五道:在一个很大的棋盘上,随机放入n个棋子,将棋子的坐标依次报出来,(x1,y1)、...、(xn,yn),根据五子棋盘上的点的位置,
1.判断所有子是否落在两条线上x=a,y=b,
2.若有多条线,输出a*1000+b值最小的组合
3.a,b的取值均为正整数
输入1:3;2,2;3,3;5,5
输出1:-1,-1

输入2:2;2,2;3;3
输出:2,3


第六道:字符匹配。
题目:glob是一种Unix风格的路径匹配模式,其规则如下:
1.字符/作为分隔符存在
2.字符*匹配除/之外的任意长度的任意字符
3.字符?匹配除/之外的单个长度的任意字符
4.中括号[]用来转移‘*’、‘?’、‘['、’]‘这四个特殊字符,一次转义一个字符
5.其他字符保持原有含义
6.对’.‘号开头的文件夹或者文件名,规则1,2不生效
输入1:“pattern. *”,"pattern.txt"
输出1:true

输入2:“dir/*”,"dir/.env"
输出2:false

先写这么多,后面再更~
欢迎大佬们赐教~
2020.06.22 把AC的两道题的代码更了。和相关的题干更了~

全部评论

(29) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐