LeetCode篇之栈:20(括号匹配问题)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode篇之栈:20(括号匹配问题)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
LeetCode篇之棧:20-->括號匹配問題
- 題目:
- 解題思路:
- 源碼:
- 踩坑點:
題目:
解題思路:
源碼:
bool isValid(char * s){char *stack = (char*)malloc(strlen(s)+1);int top = 0;int i;if(s[0] == ')' || s[0] == ']' || s[0] == '}')return false;for(i = 0;i < strlen(s);i ++){if(s[i] == '(' || s[i] == '[' || s[i] == '{'){top ++;stack[top] = s[i];}else {if((s[i] == (stack[top] + 1)) || (s[i] == (stack[top] + 2)))top --;elsereturn false;}}if(top == 0)return true;elsereturn false; }踩坑點:
**問題:**如何判斷左括號和右括號是匹配的一對括號,即若左括號為‘(’,右括號必須為‘)’才行,‘]’和‘}’都是不匹配。
解決:,根據ASCALL表可知,’(‘與’)‘的ASCII值差1,’[‘與’]’,’{‘與’}'的ASCII值差2。所以當s[i] == (stack[top] + 1時,說明()匹配;s[i] == (stack[top] + 2時,[] 或 {}匹配。
總結
以上是生活随笔為你收集整理的LeetCode篇之栈:20(括号匹配问题)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据结构之树与二叉树的应用:哈夫曼树(最
- 下一篇: (王道408考研数据结构)第七章查找-第