Если бы я проводил собеседование, я был бы немного более озабочен качеством решения с точки зрения его надежности, а не только его производительности.
Все ответов, представленных до настоящего времени, потерпят неудачу, если передать нулевой указатель - большинство из них прыгнет к немедленному вызову strlen()
на возможном нулевом указателе - что, вероятно, вызовет ошибку вашего процесса.
Многие ответы навязчивы в отношении производительности до такой степени, что они упускают один из ключевых вопросов вопроса: переверните const char *
, т.е. вам нужно сделать перевернутую копию , а не перевернуть в -место. Вам будет трудно вдвое сократить количество итераций, если требуется копия!
Это вопрос интервью, поэтому мы хотим посмотреть на детали алгоритма, но в реальном мире это просто подчеркивает ценность использования стандартных библиотек, когда это возможно.