unity——软件开发实习生笔试题
三题AC一道,我是铁fw,200 lc+
非LC原题,原题要更长且纯英文,我从中理解出来抽出实际考察内容,以下纯我自己的思路。
题一
给定一个字符串,最少删除多少个字符,可以使剩余字符变成回文串。
举例:
s= "exetest", 返回2
s = “aaaba” ,返回 0 这里有个坑,不是删除ba这两个字符,剩余aaa组成回文串,而是可以构造aaaba成为回文串aabaa,所以不用删除,我一个小时卡在这里,沾沾自喜以为是最小删除数,还以为平台出问题了。
我的思路:
计算当前字符串可能的最大回文串长度,然后将字符串长度减去最大回文串长度,获得最小删除数。
题二 (AC)
N个点M条边的无向连通图,每条边有一个权值,求该图的最小生成树。
这个太基础了,kruskal 或者 prim 任意。
题三
给定三个数组,从每个数组中选出一个数,最多能形成几个升序序列,序列不能重复,返回序列的个数。
A = {4,5,6,1}
B= {1, 2, 5, 7}
C = { 9 2 11 10}
序列有{4,5,9}, {4, 5, 11}, {4, 5, 10}, {5, 7, 9} ,{5, 7, 11}, {5, 7, 10} , {6, 7, 9} , {6,7,11}, {6, 7,10}, {1, 1, 9}, {1, 1, 11}, {1, 1, 10}, {1, 1, 2},共13个,返回 13.
用回溯,加上不能重复,所以需要考虑剪枝,但等我看到这题的时候,还剩下11分钟,很遗憾。
我刷题太少了,等明年再投把