LeetCode: Valid Parentheses
この問題解アルゴリズムは本当に何度も
基本的にはこの問題ですが、ここでも応用できます.
まずstackで解きましたが、
HashMapを使用すると、より短いコードを記述できますが、if文のみが記述されます.
問題を解く
falseに戻る場合について書きました.
import java.util.*;
class Solution {
public boolean isValid(String str) {
Stack<Character> s = new Stack<>();
for(int index = 0; index < str.length(); index++) {
char temp = str.charAt(index);
if(s.isEmpty()) {
if(temp == ')' || temp == '}' || temp == ']') {
return false;
}
s.add(temp);
}
else {
if(temp == ')') {
if(s.peek() != '(') {
return false;
}
s.pop();
continue;
}
else if(temp == '}') {
if(s.peek() != '{') {
return false;
}
s.pop();
continue;
}
else if (temp == ']') {
if(s.peek() != '[') {
return false;
}
s.pop();
continue;
}
s.add(temp);
}
}
if(!s.isEmpty()) {
return false;
}
return true;
}
}
Reference
この問題について(LeetCode: Valid Parentheses), 我々は、より多くの情報をここで見つけました https://velog.io/@wonhee010/LeetCode-Valid-Parenthesesテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol