给定一个只包括 '('
,')'
,'{'
,'}'
,'['
,']'
的字符串,判断字符串是否有效。
有效字符串需满足:
注意空字符串可被认为是有效字符串。
示例 1:
输入: "()" 输出: true
示例 2:
输入: "()[]{}" 输出: true
示例 3:
输入: "(]" 输出: false
示例 4:
输入: "([)]" 输出: false
示例 5:
输入: "{[]}" 输出: true
struct Stack {char *val;int top, maxSize; };void init(struct Stack *s, int maxSize) {s->val = malloc(maxSize);s->top = 0; }bool empty(struct Stack *s) {return !(s->top); }void push(struct Stack *s, char c) {s->val[s->top++] = c; }void pop(struct Stack *s) {s->top--; }char seek(struct Stack *s) {return s->val[s->top - 1]; }bool isValid(char *s) {int length = strlen(s);struct Stack stack;init(&stack, length);for (int i = 0; i < length; i++) {switch(s[i]) {case '(':case '{':case '[':push(&stack, s[i]);break;case ')':if (empty(&stack)) return false;if (seek(&stack) != '(') return false;pop(&stack);break;case '}':if (empty(&stack)) return false;if (seek(&stack) != '{') return false;pop(&stack);break;case ']':if (empty(&stack)) return false;if (seek(&stack) != '[') return false;pop(&stack);break;}}return empty(&stack); }
转载于:.html
本文发布于:2024-01-29 17:32:43,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170652076517099.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |