Мөр дэх үгсийг буцаах


Хэцүү байдлын түвшин Easy
Байнга асуудаг Accolite Adobe Амазоны Cisco Goldman Sachs MakeMyTrip MAQ Microsoft- Morgan Stanley Paytm PayU SAP лабораторууд Випро фирмийн Zoho
String

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

“A дахь урвуу үгс мөр”-Д танд n хэмжээтэй s тэмдэгт мөр өгөгдсөн болохыг мэдэгдэв. Мөрийг урвуу дарааллаар хэвлэ, ингэснээр сүүлчийн үг нь эхний, хоёр дахь сүүлчийнх нь хоёрдогч болох болно. Үүнд бид тэмдэгтүүдээс бүрдсэн үгийн оронд үг агуулсан өгүүлбэрийг хэлнэ.

Мөр дэх үгсийг буцаах

Жишээ нь

s = "TutorialCup makes learning easy"
easy learning makes TutorialCup

Тайлбар: TutorialCup бол буцаах төгсгөлд шилжих анхны үг юм. Сүүлчийн "хялбар" гэсэн үг урд тал руугаа шилжиж, бусад үгсийг ижил төстэй байдлаар эргүүлж өгдөг. Илүү албан ёсоор,

Өгөгдсөн мөрийг s = “TutorialCup нь сурахад хялбар болгодог”, res = ””, begin = 0, end = n-1.

Дайрч эхэл мөр эцсээр нь -

Алхам 1 - 26 индекс дээр s [i] = '', Тиймээс

эхлэх = 27, res = “хялбар”

Алхам 2 - 17 индекс дээр s [i] = '', Тиймээс

эхлэх = 18, res = “хялбар сурах”

Алхам 3 - 11 индекс дээр s [i] = '', Тиймээс

эхлэх = 12, res = “хялбар суралцахад хүргэдэг”

Алхам 4 - эхлэх = 0

res = “хялбар суралцах нь TutorialCup болгодог”

s = "Contributed by Akshita Jain"
Jain Akshita by Contributed

 

Мөрний бодлогод байгаа урвуу үгсийн алгоритм

1. Initialize a string s of size n.
2. Create a function to reverse the words of the given string which accepts a string variable as it's a parameter.
3. After that, create two variables of integer type begin and end. Initialize the variable end as the size of the string.
4. Create an empty string variable to store the result.
5. Traverse through the string from the last character to first and check if the character at current index in the given string is a white space, update the variable begin as current index + 1 and while variable begin is not equal to the variable end, add the character at index begin + 1 of the given string in the result string variable.
6. Add a white space in the result string variable and update the variable end as the current index.
7. Update variable begin as 0.
8. Traverse again, while variable begin is not equal to variable end, add the character at index begin + 1 of the given string in the result string variable.
9. Return the resulting string variable.

Мөр бол зүгээр л тэмдэгтүүдийн цуглуулга юм. Тиймээс бид үүнийг үгээр эсвэл өгүүлбэр гэж хэлж болно. Гэхдээ бид мөрийг хэлэх нь үг юм. Энэ мөр нь хоорондоо зай үлдээхгүй гэсэн үг юм. Гэхдээ мөрийг ашиглан өгүүлбэрийг шилжүүлэхдээ тэмдэгтүүдийн хоорондох зай байж болох тохиолдлыг бас авч үзье. Тиймээс үгийн тухайд үгийн эсвэл өгүүлбэрийн талаар зангилаа байх хэрэгтэй.

код

Мөр дэх үгсийг буцаахын тулд C ++ програм

#include<bits/stdc++.h> 
using namespace std; 
  
string reverseStringWords(string s){ 
    int i = s.length() - 1, begin, end = i + 1; 
    string res = ""; 
      
    while(i >= 0){ 
        if(s[i] == ' '){ 
            begin = i + 1; 
            while(begin != end) 
                res += s[begin++]; 
              
            res += ' '; 
            end = i; 
        } 
        
        i--; 
    } 
    begin = 0; 
    while(begin != end) 
        res += s[begin++]; 
      
    return res; 
} 
  
int main(){ 
    string s = "TutorialCup makes learning easy"; 
    cout << reverseStringWords(s); 
      
    return 0; 
} 
easy learning makes TutorialCup

Мөр дэх үгсийг буцаах Java програм

import java.io.*; 
import java.util.*; 
import java.lang.*; 
  
class reverse{ 
    static String reverseStringWords(String s){ 
        int i = s.length() - 1; 
        int begin, end = i + 1; 
        String res = ""; 
          
        while(i >= 0){ 
            if(s.charAt(i) == ' '){ 
                begin = i + 1; 
                while(begin != end) 
                    res += s.charAt(begin++); 
                  
                res += ' '; 
                  
                end = i; 
            } 
            i--; 
        } 
          
        begin = 0; 
        while(begin != end) 
            res += s.charAt(begin++); 
          
        return res; 
    } 
      
    public static void main(String[] args){ 
        String s = "TutorialCup makes learning easy"; 
          
        System.out.print(reverseStringWords(s)); 
    } 
} 
easy learning makes TutorialCup

Нарийн төвөгтэй байдлын шинжилгээ

Цаг хугацааны нарийн төвөгтэй байдал

O (N) Энд n нь өгөгдсөн мөр дэх тэмдэгтийн нийт тоо юм.

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

O (N) Учир нь бид n элементийг хадгалах орон зайг ашигласан.