معکوس کلمات در یک رشته


سطح دشواری ساده
اغلب در همبستگی خشت آمازون سیسکو گلدمن ساکس MakeMyTrip MAQ مایکروسافت مورگان استنلی Paytm با PayU آزمایشگاههای SAP ویپرو ZOHO
رشته

بیان مسأله

"کلمات معکوس در a رشته"بیان می کند که یک رشته s به اندازه n به شما داده می شود. رشته را به ترتیب معکوس چاپ کنید به طوری که آخرین کلمه به اولین تبدیل شود ، دوم آخرین به دوم تبدیل شود ، و غیره. بدین وسیله رشته ای را به جای کلمه ای متشکل از کاراکتر به جمله ای حاوی کلمات ارجاع می دهیم.

معکوس کلمات در یک رشته

مثال

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

توضیح: TutorialCup اولین کلمه ای است که در نتیجه معکوس کردن آن تا آخر انجام می شود. آخرین کلمه "آسان" به جلو می رود و کلمات دیگر به روشی مشابه برعکس می شوند. بیشتر رسمی ،

اجازه دهید رشته داده شده s = "TutorialCup یادگیری را آسان می کند"، res = ""، start = 0، end = n-1.

شروع به عبور از رشته از طریق پایان -

مرحله 1 - در شاخص 26 ، s [i] = "" ، بنابراین ،

شروع = 27 ، res = "آسان"

مرحله 2 - در شاخص 17 ، s [i] = "" ، بنابراین ،

شروع = 18 ، res = "یادگیری آسان"

مرحله 3 - در شاخص 11 ، s [i] = "" ، بنابراین ،

start = 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

برنامه جاوا برای برگرداندن کلمات در یک رشته

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 عنصر از فضا استفاده کردیم.