我计划进行现场面试,所以我准备了几个基本问题。根据公司简介,他们在字符串操作问题上很重要。到目前为止,我手动编写了这些函数:
有人可以给我一个更经典的字符串问题列表,我可以在去那里之前练习吗?
答案 0 :(得分:10)
他们可能会问你正则表达式。如果他们使用Java,他们可能会问StringBuffer和StringBuilder的区别。
答案 1 :(得分:5)
句子中的反向词,例如
"string manip interview question"
变为
"question interview manip string"
这个解决方案只使用一个char值的临时空间。
答案 2 :(得分:3)
确保您的撤销就位。你没有陈述,所以也许它已经是。
我想,要求你重新实施strstr()
或strtok()
也可能是他们的小巷。
更新:作为奖励,如果您最终重新执行其中任何一项,请记住不将您的功能命名为str
,因为该命名空间是保留的。让候选人显示面试中的知识会让我印象深刻,至少。 :)
答案 3 :(得分:2)
快速搜索,如Boyer-Moore和Knuth-Morris-Pratt。通过一次检查多个字节来快速strlen。使用Rabin-Karp同时在大量文本中查找多个字符串。寻找与Levenshtein距离最近的匹配。正则表达式以及它们如何实现它的一部分。各种unicode和其他多字节字符串编码以及如何在它们之间进行转换。
答案 4 :(得分:2)
设计正则表达式库。
答案 5 :(得分:1)
检查this。可能不符合“经典”的描述,但非常有趣。
答案 6 :(得分:1)
我会在一本好的算法书中查找字符串算法。例如,Boyer-Moore算法,Tries,Suffix Trees,Minimum Edit Distance,这样的东西。