Given a string containing just the characters '('
, ')'
, '{'
, '}'
, '['
and ']'
, determine if the input string is valid.
An input string is valid if:
- Open brackets must be closed by the same type of brackets.
- Open brackets must be closed in the correct order.
Note that an empty string is also considered valid.
Example 1:
Input: "()" Output: trueExample 2:
Input: "()[]{}" Output: trueExample 3:
Input: "(]" Output: falseExample 4:
Input: "([)]" Output: falseExample 5:
Input: "{[]}" Output: true
很簡單的一道括號匹配的題,用一個棧就可以實現了,沒什麼難度。
bool isValid(char* s) {
int i,top;
char stack[10000];
i = 0;
top = -1;
while(s[i] != '\0')
{
switch(s[i])
{
case '[':
top++;
stack[top] = '[';
break;
case '{':
top++;
stack[top] = '{';
break;
case '(':
top++;
stack[top] = '(';
break;
case ']':
if(top == -1)
return false;
if(stack[top] != '[')
return false;
top--;
break;
case '}':
if(top == -1)
return false;
if(stack[top] != '{')
return false;
top--;
break;
case ')':
if(top == -1)
return false;
if(stack[top] != '(')
return false;
top--;
break;
}
i++;
}
if(top != -1)
return false;
return true;
}