본문 바로가기
CodeSignal

reverseInParentheses

by Doromi 2023. 12. 3.
728x90
반응형
주어진 문자열에서 괄호로 묶인 부분의 문자열을 뒤집는 함수를 작성하는 문제입니다. 
주어진 문자열은 항상 괄호가 올바르게 매치되어 있다고 가정됩니다.

스택을 사용하여 괄호의 시작과 끝을 추적하면서 문자열을 뒤집을 수 있습니다. 

 

string solution(string inputString) {
    char[] ch = inputString.ToCharArray();
    Stack<int> stack = new Stack<int>();
    int start = 0;
    int end = 0;
    for(int i = 0;i<ch.Length;i++){
        if(ch[i] == '('){
            stack.Push(i);
        }
        else if(ch[i] == ')'){
           start = stack.Pop();
           end = i;
           while(start<end){
               char temp = ch[start];
               ch[start] = ch[end];
               ch[end] = temp;
               start++;
               end--;
           }
        }
    }
    return new string(ch).Replace("(", "").Replace(")", "");
}
이 코드에서는 스택을 사용하여 열린 괄호의 인덱스를 추적하고, 닫힌 괄호를 만나면 해당 부분을 뒤집습니다. 마지막으로 괄호를 제거하여 최종 결과를 얻습니다.

 

728x90
반응형

'CodeSignal' 카테고리의 다른 글

Are Similar?  (2) 2023.12.06
Add Border  (0) 2023.12.05
alternating Sums  (2) 2023.12.03
Sort by Height  (0) 2023.12.02
isLucky  (0) 2023.12.01