문자열 반전

난이도 쉽게
자주 묻는 질문 인포시스 MAQ o9 솔루션 TCS
조회수 105

시스템 설계 면접 질문 너무 개방적이어서 올바른 준비 방법을 알기가 너무 어렵습니다. 이제 구매 후 Amazon, Microsoft 및 Adobe의 디자인 라운드를 해독할 수 있습니다. 이 책은. 매일 수정 하나 디자인 질문 그리고 나는 당신이 디자인 라운드를 깨뜨릴 수 있다고 약속합니다.

문제 정책

"문자열 반전"문제는 크기 n의 문자열 s를 받았다는 것을 나타냅니다. 그것을 되 돌리는 프로그램을 작성하십시오. 그렇다면 문자열을 뒤집는 것은 무엇을 의미합니까? 일반적으로 우리에게 주어진 입력 문자열을 뒤집는 것을 의미합니다. 즉, 단어의 원래 문자 위치를 변경하는 작업으로 정의됩니다. 문자열의 시작 부분에있는 문자가 끝납니다. 마찬가지로, 다른 문자는 동일한 방식으로 다른 인덱스로 이동합니다 (보다 공식적으로 i 번째 문자는 문자열의 길이 -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

자바 프로그램

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

자바 프로그램

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

자바 프로그램

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

자바 프로그램

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

 

균열 시스템 설계 인터뷰
Translate »