Back to questions
Junior — Middle
88
Каким образом можно эффективнее всего развернуть последовательность символов в обратном порядке?
Companies where asked
Astra
Answer from AI
sobes.tech AI
Самый эффективный способ развернуть строку в обратном порядке в C/C++ — использовать два указателя, которые движутся навстречу друг другу, меняя символы местами. Это работает за время O(n) и не требует дополнительной памяти.
Пример на C++:
#include <iostream>
#include <cstring>
void reverseString(char* str) {
int left = 0;
int right = strlen(str) - 1;
while (left < right) {
std::swap(str[left], str[right]);
left++;
right--;
}
}
int main() {
char s[] = "Hello, world!";
reverseString(s);
std::cout << s << std::endl; // !dlrow ,olleH
return 0;
}
Такой подход эффективен и прост в реализации.