Leetcode刷题(20. 有效的括号)
2019-06-21 10:47
381 查看
Leetcode刷题(20. 有效的括号)
一.题目
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。
有效字符串需满足:
1.左括号必须用相同类型的右括号闭合。
2.左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 1:
输入: “()”
输出: true
示例 2:
输入: “()[]{}”
输出: true
示例 3:
输入: “(]”
输出: false
示例 4:
输入: “([)]”
输出: false
示例 5:
输入: “{[]}”
输出: true
二.代码(C)
int find(char *a, char b); bool isValid(char * s) { int i,l,k; int n=0; l = strlen(s); if (l==0) { return true; } char a1[] = {'{','[','(','\0'}; char a2[] = {'}',']',')','\0'}; int k2[l]; for (i=0;i<l;) { k = find(a1,s[i]); if (k>=0) { if (i+1<l&&s[i+1]==a2[k]) { i = i+2; } else { //k = i; k2[n] = k; i++; n++; } } else { k = find(a2,s[i]); if (k==-1) { return false; } else if (n!=0) { if (s[i] != a2[k2[n-1]]) { return false; } else { n--; i++; } } else { return false; } } } if (n!=0) { return false; } return true; } int find(char *a, char b) { int i; for (i=0;a[i]!='\0';i++) { if (b==a[i]) { return i; } } return -1; }
三.提交记录
四.备注
这道题采用的是堆栈的思想,即先进后出,自己设定一个数组用于保存字符,考虑到所有的不符合题目要求的情况即可。
相关文章推荐
- LeetCode 题 - 20. 有效的括号
- Leetcode刷题记——20. Valid Parentheses (有效的括号即括号匹配)
- LeetCode 20. Valid Parentheses--验证括号是否有效
- Leetcode20. 有效的括号
- Leetcode20 python有效的括号
- [Leetcode] 20题 有效的括号
- 【LeetCode】20 Valid Parentheses 有效括号
- Leetcode:20 有效的括号
- LeetCode 20 有效的括号 c语言
- LeetCode-20 有效的括号
- leetcode刷题之20.有效的括号
- LeetCode 20 Valid Parentheses(有效的括号)
- 【LeetCode】[20] 有效的括号
- [算法Rust,Go,Python,JS实现)]LeetCode之20-有效括号匹配
- Leetcode(20)有效的括号
- Leetcode做题日记:20. 有效的括号 (PYTHON)
- LeetCode刷题笔记 [20] 有效的括号
- leetcode_20.有效对括号(有问题)
- 【刷算法】LeetCode.20-有效的括号
- Leetcode.20.有效的括号