給定乙個只包括 『(』,』)』,』』,』[』,』]』 的字串,判斷字串是否有效。
有效字串需滿足:左括號必須用相同型別的右括號閉合。
左括號必須以正確的順序閉合。
注意空字串可被認為是有效字串。
示例 1:輸入: 「()」
輸出: true
示例 2:輸入: 「(){}」
輸出: true
示例 3: 輸入: 「」
輸出: true
官方給出了不同的解答方式,在此處,我只進行1種方式的描述,我把可以遇到的情況進行整理如下:
1.遇到題中[ ])三種型別的符號,這三種型別的符號對應的匹配符號理論上已經存在於棧中,因此需要出棧操作來檢測符號的匹配性。若匹配,繼續判斷下乙個符號,否則不匹配直接返回false。(從示例中可以看出棧頂元素和閉括號對應)
需要考慮的特殊情況:
包含括號的字串為空
指示括號的指標為null
第乙個符號位閉括號,此時不應進行出棧操作,否則異常
**注意點:棧的大小,在使用leetcode時,棧的大小若過於小,
會存在越界操作而報錯
bool isvalid(char * s)
;int top = 0; //top of stack
while(*s)
')) return false;
}s++;
}return (top == 0)? true : false;
}
LeetCode20有效括號
給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true示例 2 輸入 輸出 true示例 3 輸入 輸出 false示例 4 輸入 輸出 false示例 5 輸入 輸出 tr...
Leetcode 20 有效括號
leetcode 20 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true 示例 2 輸入 輸出 true pthon 列表 如 a a b 字典 如 dict not ...
LeetCode 有效的括號20
toc leetcode 20.有效的括號 傳送門 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true 示例 2 輸入 輸出 true 示例 3 輸入 輸出 false ...