Junior — Middle
Hogyan lehet a leghatékonyabban megfordítani egy karakterláncot?
sobes.tech MI
Válasz az MI-től
A leghatékonyabb módszer egy karakterlánc fordítására C/C++-ban két mutató használata, amelyek egymás felé mozognak, és karaktereket cserélnek. Ez O(n) idő alatt működik, és nem igényel extra memóriát.
Példa C++-ban:
#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;
}
Ez a módszer hatékony és könnyen megvalósítható.