g********n 发帖数: 447 | 1 上午电面,感觉应该是要挂,题没见过。
第一题,感觉很难描述清楚,面试官也给了个例子才说明白,就是给一个string里添加
下滑线。比如给一个String AABAB, ri = 2(表示两个下滑线)
,打印出来应该是, A__AB_AB, 第二个A和一个A之间需要2个_, 而B是新的字符,所以和
上一个A之间
不需要_,如此继续, 所以返回的长度是8.
这道题用hashmap做出来了。
然后面试官给了followup,还是添加下滑线,这时候ri=1, 给定一个string,返回可能
添加下滑线的最小值。 比如 ABCDDDD, 会有DABDCD, 所以返回最小值是7。 这道题我
想不明白,问他是不是用dp,他给提示说不需要,上面这个例子里,找到D,因为D出现
次数最多。后来我按他这个思路试图把string分成两段,然后再merge,总之感觉不对
,更像是个数学问题,而不是string处理问题。
中间面世官的网断了,他说看不到我写的code,又折腾一番。
总之,挂了, :( | s*******7 发帖数: 6 | 2 scheduling的题吧 好像fb挺喜欢这个题
follow up是用sort然后先执行频率高的吗? | U***A 发帖数: 849 | | r****r 发帖数: 105 | | n******n 发帖数: 12088 | 5 B和后面的A为何有下划线?
【在 g********n 的大作中提到】 : 上午电面,感觉应该是要挂,题没见过。 : 第一题,感觉很难描述清楚,面试官也给了个例子才说明白,就是给一个string里添加 : 下滑线。比如给一个String AABAB, ri = 2(表示两个下滑线) : ,打印出来应该是, A__AB_AB, 第二个A和一个A之间需要2个_, 而B是新的字符,所以和 : 上一个A之间 : 不需要_,如此继续, 所以返回的长度是8. : 这道题用hashmap做出来了。 : 然后面试官给了followup,还是添加下滑线,这时候ri=1, 给定一个string,返回可能 : 添加下滑线的最小值。 比如 ABCDDDD, 会有DABDCD, 所以返回最小值是7。 这道题我 : 想不明白,问他是不是用dp,他给提示说不需要,上面这个例子里,找到D,因为D出现
| o*******y 发帖数: 362 | 6 统计每个字符出现的次数,每次把出现次数最多的输出,输出完就出现次数减1然后放
到另一个queue里直到相隔ri后,行不?
【在 g********n 的大作中提到】 : 上午电面,感觉应该是要挂,题没见过。 : 第一题,感觉很难描述清楚,面试官也给了个例子才说明白,就是给一个string里添加 : 下滑线。比如给一个String AABAB, ri = 2(表示两个下滑线) : ,打印出来应该是, A__AB_AB, 第二个A和一个A之间需要2个_, 而B是新的字符,所以和 : 上一个A之间 : 不需要_,如此继续, 所以返回的长度是8. : 这道题用hashmap做出来了。 : 然后面试官给了followup,还是添加下滑线,这时候ri=1, 给定一个string,返回可能 : 添加下滑线的最小值。 比如 ABCDDDD, 会有DABDCD, 所以返回最小值是7。 这道题我 : 想不明白,问他是不是用dp,他给提示说不需要,上面这个例子里,找到D,因为D出现
| y**i 发帖数: 1112 | 7 感觉题目的意思是字符串里相同字符之间的距离应该不小于ri,如果小于就要补上_。
第一个string是AABAB,ri=2,所以就变成了A__AB_AB。用一个变量纪录已经添加的_
,再用一个hashmap记录每个字符的最新位置(包括_的偏移量),边扫边更新变量和
hashmap就可以了。
第二个string是ABCDDDD,ri=1,那么就是不能够有相邻两个字符相等,而且可以打乱
字符,应该把最长连续字符拿出来填到其他字符间隔空位,优先拆开其他连续字符,剩
下的全部放到string尾部,这个字符过多,只能用_来拆开了。对这个例子就是把D放到
ABC的间隔,就是DADBDCD,正好7个字符,不需要_。LZ应该是typo,给的结果少个D。 |
|