Обратна низа


Ниво на тешкотија Лесно
Често прашувано во Infosys MAQ o9 решенија TCS
Стринг

Изјава за проблем

Проблемот „Обратна низа“ наведува дека ви е дадена низа со големина 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.

Анализа на сложеност

Временска сложеност

Тој) каде 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.

Анализа на сложеност

Временска сложеност

Тој) каде 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.

Анализа на сложеност

Временска сложеност

Тој) каде 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.

Анализа на сложеност

Временска сложеност

Тој) каде 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