1.前言
2021年春招,参加的3.10机试,三道题600分A了540分,第二道对了70%,其它全对。
第二题主要是没有优化算法,复杂度为O(n^2),结果超时了,睡了一觉之后,才理清思路,然后这篇文章也是主要讲下第二题思路。
2.题目
自己没有截屏,用的牛客网中的题目。水印也是别人的,没办法。
(1)图片版
(2)文字版
感觉看图片过于眼疼,碰巧在牛客网找到有人发了文字版的,就顺手牵羊了。
1.小明抽到字符串,小红抽到一个更长的,小红有限次的替换一个字母为另一个,比如最大替换次数为2
请判断小红每次游戏时候能不能成功替换字母从而包含小明的字符串,可以请输出最小替换次数,不可以或者不需要替换输出0;
输入三行:第一行小明的字符串
第二行小红的字符串(长一些)
第三行是最大允许替换次数
2.一排包装箱从1编号,各个包装箱存放的货物数组成一个集合M={M1,M2,…,Mn}
货车一次最多运送K件货物
小王想一次从中挑选K的整数倍件货物,再分批运输。
仓库管理员为了方便要求小王必须选择连续的包装箱,比如可选择1、2、3号箱,不能选2、4、6
如果运输K整数倍件货物,请帮小王计算有多少种挑选方式
输入:
包装箱数N,货车最大一次运送的数量为K件
各个箱子存放的货物M1,M2,M3。。。
输入为两行:N K
M1 M2 M3。。。
N和K取值范围为[1,100000]
第i个包装箱存放货物的取值范围也是[1,100000]
输出:一行输出有多少种方式,如果不存在可行的方式,输出0
3.N个广播站,站点之间有些有连接,有些没有。有连接的站点在接受到广播后会互相发送。给定一个N*N的二维数组matrix,
数组的元素都是字符’0’或者’1’。matrix[i][j]=‘1’,则代表i和j站点之间有连接,matrix[i][j] = '0’代表没连接,
现在要发一条广播,问初始最少给几个广播站发送,才能保证所有的广播站都收到消息
输入:一行数据代表二维数组的各行,用逗号分隔。保证每个字符串所含的字符数一样
比如:110,110,001
输出:返回初始最少需要发送广播站个数
3.解析
(1)字母替换
暴力法OC,这道题在leetcode貌似有类似的。第一次没考虑超过允许替换字符串的限制,只通过90%,后面加了个判断就行。