Αντιστρέψτε μια χορδή  


Επίπεδο δυσκολίας Εύκολος
Συχνές ερωτήσεις Infosys MAQ o9 λύσεις TCS
κορδόνι

Πίνακας περιεχομένων

Δήλωση προβλήματος  

Το πρόβλημα "Reverse a String" δηλώνει ότι σας δίνεται μια συμβολοσειρά μεγέθους n. Γράψτε ένα πρόγραμμα για να το αντιστρέψετε. Τι σημαίνει λοιπόν η αντιστροφή μιας χορδής; Αυτό σημαίνει γενικά αντιστροφή της συμβολοσειράς εισόδου που μας δίνεται. Δηλαδή ορίζεται ως μια πράξη που οδηγεί σε αλλαγή της θέσης των αρχικών χαρακτήρων σε μια λέξη. Ο χαρακτήρας που υπάρχει στην αρχή της συμβολοσειράς πηγαίνει στο τέλος. Ομοίως, άλλοι χαρακτήρες πηγαίνουν σε διαφορετικούς δείκτες με τον ίδιο τρόπο (πιο επίσημα ο χαρακτήρας πηγαίνει στο μήκος της θέσης -i -1)

Παράδειγμα

Αντίστροφη μια συμβολοσειράΚαρφώστε

TutorialCup
puClairotuT
Akshita
atihskA

Μέθοδος ανταλλαγής  

Αλγόριθμος

1. Initialise a string s of length n.
2. Create a function to reverse a string that accepts a string variable as it's a parameter.
3. Traverse through the string and swap the starting letter with ending letter until mid is reached.
4. Return the reversed string variable.

Ανάλυση πολυπλοκότητας

Χρόνος πολυπλοκότητας

O (n) όπου n είναι ο αριθμός των χαρακτήρων στη δεδομένη λέξη. Εφόσον περάσαμε μόνο την είσοδο.

Βλέπε επίσης
Συμπίεση συμβολοσειράς

Διαστημική πολυπλοκότητα

Ο (1) γιατί χρησιμοποιήσαμε σταθερό επιπλέον χώρο. Δεν δημιουργήσαμε προσωρινή συμβολοσειρά ή πίνακα.

Κωδικός για αντιστροφή μιας συμβολοσειράς

Πρόγραμμα C ++

#include <bits/stdc++.h> 
using namespace std; 
  
string reverse(string s){ 
    int l = s.length(); 
  
    for(int i=0; i<l/2; i++) 
        swap(s[i], s[l-i-1]); 
        
    return s;    
} 
  
int main(){ 
    string s = "TutorialCup"; 
    cout<<reverse(s); 
    return 0; 
}
puClairotuT

Πρόγραμμα Java

class reverseString{
    
    static String reverse(String input)
    { 
        StringBuilder str = new StringBuilder(input); 
        int length = str.length(); 
        for (int i = 0; i < length / 2; i++) 
        { 
            char current = str.charAt(i); 
            int otherEnd = length - i - 1; 
            str.setCharAt(i, str.charAt(otherEnd)); // swap 
            str.setCharAt(otherEnd, current); 
            
        } 
        return str.toString();
    }
    public static void main (String[] args){
        String s = "TutorialCup"; 
        System.out.println(reverse(s));
      }
}
puClairotuT

Χρησιμοποιώντας ενσωματωμένη αντίστροφη μέθοδο  

Αλγόριθμος

1. Initialize a string s of length n.
2. Use the inbuilt reverse function on it.
3. Print the reversed string variable.

Ανάλυση πολυπλοκότητας

Χρόνος πολυπλοκότητας

O (n) όπου n είναι ο αριθμός των χαρακτήρων στη δεδομένη λέξη.

Διαστημική πολυπλοκότητα

Ο (1) γιατί χρησιμοποιήσαμε σταθερό επιπλέον χώρο.

Κωδικός για αντιστροφή μιας συμβολοσειράς

Πρόγραμμα C ++

#include <bits/stdc++.h> 
using namespace std; 

int main(){ 
    string s = "TutorialCup"; 
  
    reverse(s.begin(), s.end()); 
  
    cout<<s; 
    return 0; 
}
puClairotuT

Πρόγραμμα Java

import java.lang.*; 
import java.io.*; 
import java.util.*; 
  
class reverseString{
    
    public static void main(String[] args){ 
        String s = "TutorialCup"; 
  
        StringBuilder sobj = new StringBuilder(); 
  
        sobj.append(s); 
  
        sobj = sobj.reverse(); 
  
        System.out.println(sobj); 
    } 
}
puClairotuT

Εκτύπωση μόνο αντίστροφης όψης  

Αλγόριθμος για αντιστροφή μιας συμβολοσειράς

1. Initialize a string s of length n.
2. Create a function to reverse a string that accepts a string variable as it's a parameter.
3. Traverse through the given string variable from the last character to the first character.
4. Print every character of the string variable given.

Ανάλυση πολυπλοκότητας

Χρόνος πολυπλοκότητας

O (n) όπου n είναι ο αριθμός των χαρακτήρες στη δεδομένη λέξη.

Βλέπε επίσης
Αντίστροφος ακέραιος

Διαστημική πολυπλοκότητα

Ο (1) γιατί χρησιμοποιήσαμε σταθερό επιπλέον χώρο.

Κωδικός για αντιστροφή μιας συμβολοσειράς

Πρόγραμμα C ++

#include <bits/stdc++.h> 
using namespace std; 
  
void reverse(string s){ 
   for(int i=s.length()-1; i>=0; i--) 
      cout<<s[i];  
} 
  
int main(){ 
    string s = "TutorialCup"; 
    reverse(s); 
    return 0; 
}
puClairotuT

Πρόγραμμα Java

import java.lang.*; 
import java.io.*; 
import java.util.*; 
  
class reverseString{
    
    public static void main(String[] args){ 
        
        String s = "TutorialCup"; 
  
        char[] s1 = s.toCharArray(); 
  
        for(int i=s1.length-1; i>=0; i--) 
            System.out.print(s1[i]); 
    } 
}
puClairotuT

Χρήση της σειράς χαρακτήρων  

Αλγόριθμος για αντιστροφή μιας συμβολοσειράς

1. Initialize a string s of length n.
2. Create a function to reverse a string that accepts a string variable as it's a parameter.
3. Create a character array and copy the given string variable in it.
4. Traverse through the character array till the mid swapping the starting characters and the ending characters.
5. Return the character array containing the reversed string.

Ανάλυση πολυπλοκότητας

Χρόνος πολυπλοκότητας

O (n) όπου n είναι ο αριθμός των χαρακτήρων στη δεδομένη λέξη.

Διαστημική πολυπλοκότητα

O (n) γιατί χρησιμοποιήσαμε n επιπλέον χώρο.

Κωδικός για αντιστροφή μιας συμβολοσειράς

Πρόγραμμα C ++

#include <bits/stdc++.h> 
using namespace std; 
  
char* reverse(char const* s){ 
    int l = strlen(s); 
  
    char *rev = new char[l+1]; 
  
    strcpy(rev, s); 
  
    for(int i=0, j=l-1; i<j; i++,j--) 
        swap(rev[i], rev[j]);        
      
    return rev; 
} 
  
int main(void){ 
    const char *s = "TutorialCup"; 
    cout<<reverse(s); 
    return (0); 
} 
puClairotuT

Πρόγραμμα Java

import java.lang.*; 
import java.io.*; 
import java.util.*; 
  
class reverseString{
    
    public static void main(String[] args){ 
        String s = "TutorialCup"; 
        char[] temp = s.toCharArray(); 
        int left, right=0; 
        right = temp.length-1; 
  
        for(left=0; left<right ; left++ ,right--){ 
            char t = temp[left]; 
            temp[left] = temp[right]; 
            temp[right]=t; 
        } 
  
        for (char c : temp) 
            System.out.print(c); 
        System.out.println(); 
    } 
}
puClairotuT