logo

Verschiedene Methoden zum Umkehren eines Strings in C++

Das Umkehren einer Zeichenfolge ist nichts anderes als das einfache Ersetzen des letzten Elements einer Zeichenfolge an der ersten Position der Zeichenfolge.

String-Reverse



Verschiedene Methoden zum Umkehren eines Strings in C++ sind:

  • Erstellen unserer eigenen Umkehrfunktion
  • Verwendung der „eingebauten“ Umkehrfunktion
  • Verwenden des Konstruktors
  • Verwendung einer Temp Datei

1. Erstellen einer benutzerdefinierten Umkehrfunktion zum Austauschen von Zeichen

  • Mit einem First-to-Last-Ansatz‘ für' Schleife

CPP








// C++ program to reverse a string> // using first to last approach> // 'for' loop> #include> using> namespace> std;> // Function to reverse a string> void> reverseStr(string& str)> {> >int> n = str.length();> >// Swap character starting from two> >// corners> >for> (>int> i = 0; i swap(str[i], str[n - i - 1]); } // Driver program int main() { string str = 'geeksforgeeks'; reverseStr(str); cout << str; return 0; }>

>

>

Ausgabe

skeegrofskeeg>

Komplexitätsanalyse:

Zeitkomplexität: AN)
Hilfsraum: O(1)

  • Verwenden eines First-to-Last-Ansatzes mit While-Schleife

C++




// C++ program to reverse a string> // using while loop> #include> using> namespace> std;> // Function to reverse a string> void> reverseStr(string& str)> {> >int> len = str.length();> >int> n = len-1;> >int> i = 0;> >while>(i<=n){> >//Using the swap method to switch values at each index> >swap(str[i],str[n]);> >n = n-1;> >i = i+1;> >}> }> // Driver program> int> main()> {> >string str =>'geeksforgeeks'>;> >reverseStr(str);> >cout << str;> >return> 0;> }>

>

>

Ausgabe

skeegrofskeeg>

Komplexitätsanalyse:

Zeitkomplexität: AN)
Hilfsraum: O(1)

  • Verwendung eines Last-to-First-Ansatzes für „Schleife

C++




strsep
// C++ program to demonstrate reverse> // of a string using Last to First> // Approach 'for' Loop> #include> using> namespace> std;> // Function to reverse a string> void> reverse(string str)> {> >for> (>int> i = str.length() - 1; i>= 0; i--)> >cout << str[i];> }> // Driver code> int> main(>void>)> {> >string s =>'techcodeview.com'>;> >reverse(s);> >return> (0);> }>

>

>

Ausgabe

skeeGrofskeeG>

Komplexitätsanalyse:

Zeitkomplexität: AN)
Hilfsraum: O(1)

  • Verwendung einer Last-to-First-Ansatz-While-Schleife

C++




// C++ program to demonstrate reverse> // of a string using Last to First> // Approach 'while' Loop> #include> using> namespace> std;> // Function to reverse a string> void> reverse(string str)> {> >int> len = str.length();> >int> n = len;> >while>(n--)> >cout << str[n];> }> // Driver code> int> main(>void>)> {> >string s =>'techcodeview.com'>;> >reverse(s);> >return> (0);> }>

>

>

Ausgabe

skeeGrofskeeG>

Komplexitätsanalyse:

Zeitkomplexität: AN)
Hilfsraum: O(1)

1. Verwendung einer Rekursionsfunktion mit Zwei-Zeiger-Ansatz

Rekursionsfunktionen werden zum Durchlaufen verschiedener Indizes der Zeichenfolge verwendet.

C++




// C++ program to reverse a string> // using recursion> #include> using> namespace> std;> // Function to reverse a string> void> reverseStr(string& str,>int> n,>int> i)> {> > >if>(n<=i){>return>;}> // Swapping the character> >swap(str[i],str[n]);> >reverseStr(str,n-1,i+1);> }> // Driver program> int> main()> {> >string str =>'geeksforgeeks'>;> >reverseStr(str, str.length()-1, 0);> >cout << str;> >return> 0;> }>

>

>

Ausgabe

skeegrofskeeg>

Komplexitätsanalyse:

Zeitkomplexität: AN)

Hilfsraum : AN)

2. Verwendung eines Ein-Zeiger-Ansatzes bei der Rekursion

Unten ist die Implementierung des Codes:

C++




Java-Vergleichszeichenfolge

//C++ program to reverse a string using recursion> #include> using> namespace> std;> void> getreverse(string &str,>int> i)> {> >if> (i>(str.length() - 1 - i))> >{> >return>;> >}> >swap(str[i], str[str.length() - i - 1]);> >i++;> >getreverse(str, i);> }> int> main()> {> >string name =>'geeksforgeeks'>;> >getreverse(name, 0);> >cout << name << endl;> >return> 0;> }> //code contributed by pragatikohli>

>

>

Ausgabe

skeegrofskeeg>

Komplexitätsanalyse:

Zeitkomplexität: AN)

Hilfsraum: AN)

3. Verwendung der integrierten Umkehrfunktion

In der Header-Datei des Algorithmus gibt es eine direkte Funktion für die Umkehrung, die uns beim Programmieren Zeit spart.

// Reverses elements in [begin, end] void reverse (BidirectionalIterator begin,  BidirectionalIterator end);>

CPP




// C++ program to illustrate the> // reversing of a string using> // reverse() function> #include> using> namespace> std;> int> main()> {> >string str =>'geeksforgeeks'>;> >// Reverse str[begin..end]> >reverse(str.begin(), str.end());> >cout << str;> >return> 0;> }>

Konvertieren Sie einen String in ein JSONObject-Java
>

>

Ausgabe

skeegrofskeeg>

Komplexitätsanalyse:

Zeitkomplexität: AN)

Hilfsraum: O(1)

4. Kehren Sie einen String mit dem Konstruktor um

Die Übergabe umgekehrter Iteratoren an den Konstruktor gibt uns eine umgekehrte Zeichenfolge zurück.

CPP




// C++ program to reverse> // string using constructor> #include> using> namespace> std;> int> main()> {> >string str =>'techcodeview.com'>;> >// Use of reverse iterators> >string rev = string(str.rbegin(), str.rend());> >cout << rev << endl;> >return> 0;> }>

>

>

Ausgabe

skeeGrofskeeG>

Komplexitätsanalyse:

Zeitkomplexität: AN)

Hilfsraum: O(1)

5. Verwenden einer temporären Zeichenfolge

CPP




// C++ program to demonstrate> // reversing of string> // using temporary string> #include> using> namespace> std;> int> main()> {> >string str =>'techcodeview.com'>;> >int> n = str.length();> > >// Temporary string to store the reverse> >string rev;> > >for> (>int> i = n - 1; i>= 0; i--)> >rev.push_back(str[i]);> >cout << rev << endl;> >return> 0;> }>

>

>

Ausgabe

skeeGrofskeeG>

Komplexitätsanalyse:

Zeitkomplexität : AN)

Hilfsraum: O(1)

Wie könnten wir die Umkehrung einer Konstantenzeichenfolge erhalten?

Um die Umkehrung einer Konstantenzeichenfolge zu erhalten, müssen wir zunächst ein „“ deklarieren. const string’ in einer benutzerdefinierten Funktion, die wir anschließend deklariert haben, verwenden Sie dann den folgenden Algorithmus für den Aufruf der gewünschten Objekte.

const reverseConstString = function(string) { return string.split('').reverse().join('')>

Beispiel:

C++




// C++ program to get reverse of a const string> #include> using> namespace> std;> // Function to reverse string and return> // reverse string pointer of that> char>* reverseConstString(>char> const>* str)> {> >// find length of string> >int> n =>strlen>(str);> >// create a dynamic pointer char array> >char>* rev =>new> char>[n + 1];> >// copy of string to ptr array> >strcpy>(rev, str);> >// Swap character starting from two> >// corners> >for> (>int> i = 0, j = n - 1; i swap(rev[i], rev[j]); // return pointer of the reversed string return rev; } // Driver code int main(void) { const char* s = 'techcodeview.com'; printf('%s', reverseConstString(s)); return (0); }>

>

>

Ausgabe

skeeGrofskeeG>

Zeitkomplexität: AN)
Hilfsraum: AN)

sie sind Sänger

Verwenden der Stack-Datenstruktur

C++




// C++ Program to reverse a string> #include> using> namespace> std;> int> main()> {> >string s =>'techcodeview.com'>;> >stack<>char>>st;> >for> (>char> x : s)> >st.push(x);> >while> (!st.empty()) {> >cout << st.top();> >st.pop();> >}> >return> 0;> }>

>

>

Ausgabe

skeeGrofskeeG>

Komplexitätsanalyse:

Zeitkomplexität: AN)

Hilfsraum: AN)

Verwenden der Vektordatenstruktur

C++




// C++ Program to reverse a string> #include> using> namespace> std;> int> main()> {> >string s =>'techcodeview.com'>;> >int> n=s.length();> >vector<>char>>Ding;> >for> (>int> i = n - 1; i>= 0; i--)> >vec.push_back(s[i]);> > >for>(>auto> i:vec){> >cout< } return 0; }>

>

>

Ausgabe

skeeGrofskeeG>

Komplexitätsanalyse:

Zeitkomplexität: AN)

Hilfsraum: AN)

Dieser Artikel wurde verfasst von Priyam Kakati, Ranju Kumari, Somesh Awasthi.