Re: [閒聊] 每日LeetCode已回收
20. Valid Parentheses
給你一個s字串只包含三種刮號 (){}[],如果同種類的左刮號相鄰右刮號表示他是一
個合法刮號,如果不同種類的左刮號配對右刮號表示不合法,返回字串s是否合法。
Example :
Input: s = "()"
Output: true
Input: s = "()[]{}"
Output: true
Example 3:
Input: s = "(]"
Output: false
思路:
1.刮號匹配可以用Stack處理,遇到左刮號就push,遇到右刮號就pop,如果
pop出來的刮號不匹配或是Stack為空就表示刮號非法。
Java Code:
----------------------------------------------------------------------
class Solution {
public boolean isValid(String s) {
Deque<Character> stack = new ArrayDeque<>();
for (char c : s.toCharArray()) {
if (c == '(' || c == '{' || c == '[') {
stack.push(c);
} else {
if (stack.isEmpty()) {
return false;
} else if (c == ')' && stack.pop() != '(') {
return false;
} else if (c == '}' && stack.pop() != '{') {
return false;
} else if (c == ']' && stack.pop() != '[') {
return false;
}
}
}
return stack.isEmpty();
}
}
----------------------------------------------------------------------
https://i.imgur.com/acHi4CL.png


--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.100.75.86 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1681135451.A.32E.html
推
04/10 22:05,
2年前
, 1F
04/10 22:05, 1F
推
04/10 22:15,
2年前
, 2F
04/10 22:15, 2F
推
04/10 22:17,
2年前
, 3F
04/10 22:17, 3F
討論串 (同標題文章)
完整討論串 (本文為第 290 之 719 篇):