문자열에서 단어 반전

난이도 쉽게
자주 묻는 질문 수행자 어도비 벽돌 아마존 시스코 골드만 삭스 MakeMyTrip MAQ Microsoft 모건 스탠리 (Morgan Stanley) Paytm 알레그로 SAP 연구소 위 프로 조호 (Zoho)
조회수 38

문제 정책

"의 역 단어 ”는 n 크기의 문자열 s를 받았음을 나타냅니다. 마지막 단어가 첫 번째가되고 두 ​​번째 마지막 단어가 두 번째가되도록 문자열을 역순으로 인쇄합니다. 여기서 문자열은 문자로 구성된 단어 대신 단어가 포함 된 문장을 의미합니다.

문자열에서 단어 반전

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

설명 : TutorialCup은 첫 번째 단어이므로 반전하면 끝으로 이동합니다. 마지막 단어 "easy"는 앞쪽으로 가고 다른 단어는 비슷한 방식으로 반전됩니다. 좀 더 공식적으로

주어진 문자열 s = “TutorialCup으로 쉽게 학습 할 수 있습니다.”, res =””, begin = 0, end = n-1.

횡단 시작 끝까지 –

1 단계 – 인덱스 26에서 s [i] = '', 따라서

시작 = 27, 입술 = "쉬움"

2 단계 – 인덱스 17에서 s [i] = '', 따라서

begin = 18, res = "쉬운 학습"

3 단계 – 인덱스 11에서 s [i] = '', 따라서

begin = 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 개의 요소를 저장하기 위해 공간을 사용했기 때문입니다.

Translate »