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 |