Sobes.tech
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;
}

Такой подход эффективен и прост в реализации.