logo

Ulike metoder for å reversere en streng i C++

Reversering av en streng er ikke annet enn å erstatte det siste elementet i en streng med den første posisjonen til strengen.

streng-revers



Ulike metoder for å reversere en streng i C++ er:

  • Å lage vår egen omvendte funksjon
  • Bruker 'innebygd' reversfunksjon
  • Bruker Constructor
  • Bruker en temp fil

1. Lage en tilpasset omvendt funksjon for å bytte tegn

  • Bruke en første til siste tilnærming ' til' Løkke

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; }>

>

>

Produksjon

skeegrofskeeg>

Kompleksitetsanalyse:

Tidskompleksitet: PÅ)
Hjelpeplass: O(1)

  • Bruker en første til siste Approach med while-løkke

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;> }>

>

>

Produksjon

skeegrofskeeg>

Kompleksitetsanalyse:

Tidskompleksitet: PÅ)
Hjelpeplass: O(1)

  • Bruke en siste til første tilnærming ' til ' Løkke

C++




java math.min
// 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);> }>

>

>

Produksjon

skeeGrofskeeG>

Kompleksitetsanalyse:

Tidskompleksitet: PÅ)
Hjelpeplass: O(1)

  • Bruke en siste til første tilnærming «mens»-løkke

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);> }>

>

>

Produksjon

skeeGrofskeeG>

Kompleksitetsanalyse:

Tidskompleksitet: PÅ)
Hjelpeplass: O(1)

1. Bruke rekursjonsfunksjon med to-peker-tilnærming

Rekursjonsfunksjoner brukes til å iterere til forskjellige indekser av strengen.

C++

helbrede verktøy gimp




// 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;> }>

>

>

Produksjon

skeegrofskeeg>

Kompleksitetsanalyse:

Tidskompleksitet: PÅ)

Auxiliary Space : O(N)

2. Bruke én peker tilnærming i rekursjon

Nedenfor er implementeringen av koden:

C++




//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>

>

>

Produksjon

skeegrofskeeg>

Kompleksitetsanalyse:

Tidskompleksitet: PÅ)

Hjelpeplass: PÅ)

3. Bruke den innebygde reversfunksjonen

Det er en direkte funksjon i algoritmehodefilen for å gjøre revers som sparer tid når vi programmerer.

// 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;> }>

sjakal vs ulv
>

>

Produksjon

skeegrofskeeg>

Kompleksitetsanalyse:

Tidskompleksitet: PÅ)

Hjelpeplass: O(1)

4. Snu en streng ved hjelp av konstruktøren

Ved å sende omvendte iteratorer til konstruktøren returnerer vi en omvendt streng.

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;> }>

>

>

Produksjon

skeeGrofskeeG>

Kompleksitetsanalyse:

Tidskompleksitet: PÅ)

Hjelpeplass: O(1)

5. Bruke en midlertidig streng

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;> }>

>

>

Produksjon

skeeGrofskeeG>

Kompleksitetsanalyse:

Tidskompleksitet : O(N)

Hjelpeplass: O(1)

Hvordan kan vi få det motsatte av en konstantstreng?

For å få det motsatte av en const-streng må vi først erklære en ' const string' i en brukerdefinert funksjon som vi har deklarert, bruk deretter følgende algoritme for å kalle de ønskede objektene.

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

Eksempel:

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); }>

>

>

Produksjon

skeeGrofskeeG>

Tidskompleksitet: PÅ)
Hjelpeplass: PÅ)

Bruke stabeldatastruktur

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;> }>

>

>

Produksjon

skeeGrofskeeG>

Kompleksitetsanalyse:

javascript opplæring

Tidskompleksitet: PÅ)

Hjelpeplass: PÅ)

Bruke vektordatastruktur

C++




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

>

>

Produksjon

skeeGrofskeeG>

Kompleksitetsanalyse:

Tidskompleksitet: PÅ)

Hjelpeplass: PÅ)

Denne artikkelen er bidratt av Priyam Kakati, Ranju Kumari, Somesh Awasthi.