유효한 괄호
4445 단어 javaleetcodealgorithms
목적:
'(', ')', '{', '}', '[' 및 ']' 문자만 포함하는 문자열 s가 주어지면 입력 문자열이 유효한지 확인합니다.
다음과 같은 경우 입력 문자열이 유효합니다.
열린 괄호는 같은 유형의 괄호로 닫아야 합니다.
여는 괄호는 올바른 순서로 닫아야 합니다.
패턴: 스택
접근하다:
빅오 표기법:
시간 복잡도: O(n)
문자열의 각 문자에 대해 n번 반복합니다.
공간 복잡도: O(n)
저장을 위해 해시 맵 데이터 구조를 사용합니다.
암호:
class Solution {
public boolean isValid(String s) {
// use stack to store opening brackets
Stack <Character> stack = new Stack<>();
// use a hashmap to store pairs
Map <Character, Character> hashMap = new HashMap<>();
hashMap.put(')','(');
hashMap.put('}','{');
hashMap.put(']','[');
// iterate through s
// add open brackets to the stack
// if stack is empty or top char is not a match to c
// return false
for(char c : s.toCharArray()){
if(!hashMap.containsKey(c)){
stack.push(c);
} else if(stack.isEmpty() || stack.pop() != hashMap.get(c)){
return false;
}
}
return stack.isEmpty();
}
}
Reference
이 문제에 관하여(유효한 괄호), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/tammyvocs/valid-parentheses-45pa텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)