有效的括號(力扣 20)

2021-10-10 22:59:15 字數 1061 閱讀 3443

給定乙個只包括 『(』,』)』,』』,』[』,』]』 的字串,判斷字串是否有效。

有效字串需滿足:

左括號必須用相同型別的右括號閉合。

左括號必須以正確的順序閉合。

注意空字串可被認為是有效字串。

示例 1:

輸入: 「()」

輸出: true

示例 2:

輸入: 「(){}」

輸出: true

示例 3:

輸入: 「(]」

輸出: false

示例 4:

輸入: 「([)]」

輸出: false

示例 5:

輸入: 「」

輸出: true

核心思路:用棧來解決問題。

方法一:遍歷字串 s ,按順序進棧,如果字元匹配了,則出棧,如果不匹配,則進棧。最後如果棧為空,則表示匹配成功。

方法二:遍歷字串 s ,如果是配對的左側(』(』、』[』、』}』)則讓相應的右側進棧,則棧裡面儲存的都是配對的右側字元,後面字串的所有右側字元必須和棧裡面的相等,即為配對成功。最後同樣判斷棧是否為空。

/**

* 20. 有效的括號

** @param s

* @return

*/public boolean isvalid(string s) ') || (sb.charat(index) == '[' && c == ']')))

index++;

}return sb.length() == 0;

}

/**

* 20. 有效的括號

** @param s

* @return

*/public boolean isvalid(string s) else if (c == '[') else if (c == '');

} else if (stack.isempty() || c != stack.pop())

}return stack.isempty();

}

力扣 20 有效的括號

題目 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例1 輸入 輸出 true 示例2 輸入 輸出 true 示例3 輸入 輸出 false 示例4 輸入 輸出 false 示例5 輸入 輸出 ...

力扣 20 有效的括號

給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true 示例 2 輸入 輸出 true 示例 3 輸入 輸出 false 示例 4 輸入 輸出 false 示例 5 輸入 輸...

力扣 20 有效的括號

20.有效的括號 這是我刷了幾天題以來第一道標著 簡單 同時我也覺得還算簡單的題,蛋疼 class solution object defisvalid self,s type s str rtype bool stack 抄別人的,本來我是用if乙個個判斷的,好傻 for char in s 考慮...