LeetCode:20. Valid Parentheses(Easy)
阿新 • • 發佈:2017-12-25
實現 16px parent 數字 字符串 java 給定 遇到 ray
1. 原題鏈接
https://leetcode.com/problems/valid-parentheses/description/
2. 題目要求
給定一個字符串s,s只包含‘(‘
, ‘)‘
, ‘{‘
, ‘}‘
, ‘[‘
和 ‘]‘。
合法:形如“()[]“、”{[()]}“
不合法:形如“([)]”、“[[((”
判斷所給字符串s是否合法。
3. 解題思路
對字符串s轉換成字符數字進行遍歷。
利用棧,遇到左半邊字符:‘(‘、‘[‘、‘{‘時,將其對應的右半邊字符進行入棧。遇到不是左半邊字符時進行出棧操作,並對出棧的字符和當前遍歷到的字符進行比較。二者相同,則繼續遍歷,不同則返回false;
最後對棧進行判空操作 ,為空則字符串s合法,返回true;否則s不合法,返回false。
4. 代碼實現
import java.util.Stack; public class ValidParentheses20 { public static void main(String[] args) { System.out.println(ValidParentheses20.isValid("[(])")); } public static boolean isValid(String s) { Stack<Character> stack = new Stack<>(); for (char c : s.toCharArray()) { if (c == ‘(‘) stack.push(‘)‘); else if (c == ‘[‘) stack.push(‘]‘); else if (c == ‘{‘) stack.push(‘}‘); else if (stack.isEmpty() || stack.pop() != c) return false; } return stack.isEmpty(); } }
LeetCode:20. Valid Parentheses(Easy)