Проверьте этот . Может не соответствовать описанию «классика», но очень интересно.
Убедитесь, что ваш разворот на месте. Вы не заявили, так что, возможно, это уже так.
Попросить вас повторно реализовать strstr ()
или strtok ()
, я полагаю, тоже их подойдет.
ОБНОВЛЕНИЕ : в качестве бонуса, если вы в конечном итоге повторно реализуете любой из них, не забудьте , а не называть свои функции, начиная с str
, поскольку это пространство имен зарезервированный. Если бы кандидат продемонстрировал эти знания на собеседовании, меня, по крайней мере, впечатлило бы. :)
Быстрый поиск, как Бойер-Мур и Кнут-Моррис-Пратт. Быстрая проверка, проверяя более одного байта за раз. Одновременный поиск нескольких строк в большом тексте с помощью Рабина-Карпа. Поиск ближайших совпадений с такими вещами, как расстояние Левенштейна. Регулярные выражения и способы их реализации. Различные кодировки Unicode и других многобайтовых строк и способы преобразования между ними.
Замена слов в предложении, например,
"string manip interview question"
становится
"question interview manip string"
это имеет решение, которое использует только один char временного пространства.
Они могут спросить вас о регулярных выражениях. Если они используют Java, они могут спросить о разнице между StringBuffer и StringBuilder.
Я бы поискал строковые алгоритмы в хорошей книге по алгоритмам. Например, алгоритм Бойера-Мура, попытки, суффиксные деревья, минимальное расстояние редактирования, и тому подобное.