笔试禁止外部IDEA,Golang纯手打好累。
T1 AC
模拟栈,输入一个字符串,其中包含两类操作PUSH NUM和POP NUM,每个操作之间以;分隔
PUSH NUM表示将NUM入栈
POP NUM表示弹出栈顶NUM个元素,如果此时栈中元素小于NUM,则全部弹出
栈容量:100
输出最终栈中的所有元素
输入:"PUSH -100;PUSH 10;POP 1"
输出:"-100"
思路:简单模拟即可,坑:split后每个字符串元素,例如PUSH -100前后可能有空格,需要trim一下。
T2 AC
输入一个字符串与一个整数n,将字符串分割为若干份连续的子字符串,每一份的长度不超过n,求最后分割出的子字符串数组最大(当有多组解时,输出结果集中第一个子字符串最长的解,当第一个子字符串)
另外,存在着若干转义字符,此转义字符无法分割。
思路:模拟即可,
初始化last等于0,表示上一个切割点所在下标。
当前访问下标index
计算每个字符不可分割的长度length
- 对于非转义字符,其length=1
- 对于转义字符,就根据具体转义字符长度计算length即可
如果当前下标位置index+length-last不大于n,那么说明此字符/转义字符不用被分割,下标index+=length
如果大于n,那么说明要分割,将last-index的字符串添加进结果集,last=index,继续循环。
T3
思路:字符串hash+模拟,题目太长。
超内存,63%,不想调了,摆烂
#笔经##趋势科技#