有效的括号
C++ (err) 錯誤嘗試
class Solution {
public:
bool isValid(string s) {
int a = 0;
int b = 0;
int c = 0;
if (s.size()%2 ==1){
return false;
}
for (int i = 0; i<s.size();i++){
//for (int j = 0; j<s.size();j++){
if (s[i]=='(' && (s[i+1]=='}' || s[i+1]==']') ){
return false;
}else if (s[i]=='{' && (s[i+1]==')' || s[i+1]==']') ){
return false;
}else if (s[i]=='[' && (s[i+1]==')' || s[i+1]=='}')){
return false;
}
// }
}
for (int i = 0; i<s.size();i++){
if (s[i]=='(' ){
a++;
}else if (s[i]=='{' ){
b++;
}else if (s[i]=='[' ){
c++;
}else if (s[i]==')' ){
a--;
if (a <0 ){
return false;
}
}else if (s[i]=='}' ){
b--;
if (b <0 ){
return false;
}
}else if (s[i]==']' ){
c--;
if (c <0 ){
return false;
}
}
}
if (a != 0 || b != 0 || c != 0 ){
return false;
}
return true;
}
};
Leetcode記錄 - 20.有效的括号C++ (err) 錯誤嘗試C++ C++
class Solution {
public:
bool isValid(string s) {
stack<char> stack;
for (int i = 0; i<s.size();i++){
if (s[i]=='(' || s[i]=='[' || s[i]=='{' ){
stack.push(s[i]);
}else{
if (stack.size()==0){
return false;
}else{
char c = stack.top();
stack.pop();
char match;
if (s[i]==')'){
match = '(';
}else if (s[i]==']'){
match = '[';
}else if (s[i]=='}'){
match = '{';
}
if (c!= match){
return false;
}
}
}
}
if (stack.size()!=0){
return false;
}
return true;
}
};