[LeetCode] Valid Parentheses

来源:互联网 发布:java线程池需要关闭吗 编辑:程序博客网 时间:2024/06/08 06:27

题目

https://leetcode.com/problems/valid-parentheses/

Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.

The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]" are not.

代码

73 / 73 test cases passed.Runtime: 3 ms
bool isValid(char* s) {    if (s == NULL) return false;    if (s[0] == '\0') return true;    int len = strlen(s);    char *stack = (char*)malloc(len);    stack[0] = s[0];    int top = 0;    int i = 1;    while (s[i] != '\0') {        if (s[i] == ')' && top >= 0 && stack[top] == '('           || s[i] == ']' && top >= 0 && stack[top] == '['           || s[i] == '}' && top >= 0 && stack[top] == '{') {            top--;            i++;        } else if (s[i] == '(' || s[i] == '[' || s[i] == '{') {            top++;            stack[top] = s[i];            i++;        } else {            return false;        }    }    free(stack);    return (top<0); // 栈内如果有数据,说明不符合}
原创粉丝点击