Обрни низ


Ниво тешкоће Лако
Често питани у Инфосис МАК о9 решења ТЦС
низ

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

Проблем „Обрни низ“ наводи да сте добили низ с величине н. Напишите програм да бисте га преокренули. Па, шта значи обртање низа? То генерално значи преокретање улазног низа који нам је дат. То је дефинисано као операција која доводи до промене положаја оригиналних знакова у речи. Знак који је присутан на почетку низа иде до краја. Слично томе, други знакови на исти начин прелазе на различите индексе (формалније и-ти знак иде на дужину низа -и -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.

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

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

Он) где је н број знакова у датој речи. Пошто смо само прешли улаз.

Сложеност простора

О (1) јер смо користили константан додатни простор. Нисмо створили привремени низ или низ.

Код за преокрет низа

Програм Ц ++

#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

Јава Програм

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.

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

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

Он) где је н број знакова у датој речи.

Сложеност простора

О (1) јер смо користили константан додатни простор.

Код за преокрет низа

Програм Ц ++

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

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

Јава Програм

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.

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

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

Он) где је н број карактера у датој речи.

Сложеност простора

О (1) јер смо користили константан додатни простор.

Код за преокрет низа

Програм Ц ++

#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

Јава Програм

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.

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

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

Он) где је н број знакова у датој речи.

Сложеност простора

Он) јер смо користили н додатног простора.

Код за преокрет низа

Програм Ц ++

#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

Јава Програм

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