Мөрийг буцаах


Хэцүү байдлын түвшин Easy
Байнга асуудаг Infosys MAQ o9 шийдэл холболтуудын
String

Асуудлын мэдэгдэл

“Урвуу мөрийг эргүүл” гэсэн асуудалд танд n хэмжээтэй s мөр өгөгдсөн байна. Үүнийг буцаахын тулд програм бич. Тэгэхээр мөрийг буцаах нь юу гэсэн үг вэ? Энэ нь ерөнхийдөө бидэнд өгсөн оролтын мөрийг буцаах гэсэн үг юм. Энэ бол нэг үгээр анхны тэмдэгтүүдийн байрлалыг өөрчлөхөд хүргэдэг үйлдэл гэж тодорхойлогддог. Мөрний эхэнд байгаа тэмдэгт төгсгөл болно. Үүнтэй адилаар бусад тэмдэгтүүд ижил төстэй янз бүрийн индексүүд рүү шилждэг (илүү албан ёсоор ith тэмдэг нь мөрний урт -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 нь тухайн үгийн тэмдэгтийн тоо юм. Нэгэнт бид зөвхөн оролтыг туулсан.

Сансрын нарийн төвөгтэй байдал

O (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 нь тухайн үгийн тэмдэгтийн тоо юм.

Сансрын нарийн төвөгтэй байдал

O (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 нь тэмдэгтүүд өгөгдсөн үгээр.

Сансрын нарийн төвөгтэй байдал

O (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