2.26号微软笔试
一、有N个球员站成一排,一个球员在一个场地上。他们从左到右的编号是0到N-1。玩家从左到右逐一进行移动,即按数字升序进行。每个玩家按四个基本方向之一的箭头键:左('<'),右(>'),上(^)或下('v')。移动被表示为一个长度为N的字符串,其中s[K](对于0...N-1范围内的K)是第K个移动的方向。有多少人能够真正成功地完成一个动作?
二、给出两个长度相同的字符串,求两个字符串中相“匹配”的字符子串个数,“匹配”是指两个子串在原字符串中起点相同,且两个字符子串长度一致,各字符出现次数一致(同一字符串内部字符不同排序构成的字符串)
例如:s="dBacaAA" ,t="caBdaaA",答案是5
其中 "dBac"与"caBd"匹配(子串起始位置:0)
"dBaca"与"caBda"匹配( 子串起始位置:0)
"Ba"和"aB"匹配( 子串起始位置:2)
"a"与"a"匹配( 子串起始位置:4)
"A"与"A"匹配( 子串起始位置:6)
三、一个数组,每个元素有一个值,要选两个点把数组切成3段,目的是让这两个点的值加起来最小,返回最小的sum。
e.g. A = [5,2,4,6,3,7]
- (1,3): A[1]+A[3] = 2+6=8
- (1,4): 2+3=5
- (2,4):4+3=7
所以答案是5.