Junior — Middle
Qual é a forma mais eficaz de inverter uma sequência de caracteres?
sobes.tech IA
Resposta da IA
A forma mais eficiente de inverter uma string em C/C++ é usar dois ponteiros que se movem um em direção ao outro, trocando os caracteres. Isto funciona em tempo O(n) e não requer memória adicional.
Exemplo em 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;
}
Esta abordagem é eficiente e fácil de implementar.