变了味的面试

October 23, 2013 · One minute read

我一直不是很擅长面试,特别是在白板上写代码,难道他们假设程序员一天到晚是在白板上工作的么?还有些变了味的面试,记得有一次,遇到一个字符串分割逆序的问题,我使用了Java的字符串split和StringBuilder的方法,大概是这样的

String[] words = str.split("\\s");
for (int i = 0; i < words.length; i ++) {
    Stack stack = new Stack();
    for (int j = 0; j < words[i].length(); j ++) {
        stack.push(words[i].charAt(j));
    }
    StringBuilder builder = new StringBuilder(words[i].length());
    while (!stack.isEmpty()) {
        builder.append(stack.pop());
    }
    words[i] = builder.toString();
}
return StringUtils.join(words, " ");

面试官当时也没说什么,也没有让我做任何改进,我也只是稍稍解释了下这种方法的不足,应该换成stream操作,配合逆序迭代器,可以实现更高效率的方法。面试的结果相当不好,一开始我不能理解,怎么我这么强的人会被拒。后来google了才知道,妈的,原来你要这个解法啊?!补充一下,“这个解法"是指不需要额外stack的原地交换方法。

只能说我自叹弗如了……我还是做回我自己的黑客吧,不跟他们玩了。