(java)leetcode-20

    xiaoxiao2021-04-03  41

    Valid Parentheses

    Given a string containing just the characters'(', ')', '{', '}', '[' and']', determine if the input string is valid.

    The brackets must close in the correct order,"()" and "()[]{}" are all valid but "(]" and"([)]" are not.

    解题思路:

    这个想到了以前用栈来进行判断,就是当是左括号的时候就push,当时右括号的时候就pop,比较pop的值是不是想要的结果,如果不是就返回错误。最后检查遍历结束之后的栈是不是空栈。 网上看到了一个不错的做法,就是当遇到左括号的时候就把对应的右括号push进去,这样pop的时候直接看是不是对应的右括号就可以了。代码会简单很多。

    [java] view plain copy print ? public class Solution {      public boolean isValid(String s) {          Stack<Character> st = new Stack<Character>();          for(int i = 0;i<s.length();i++)          {              char cs = s.charAt(i);              if(cs == '(')                  st.push(')');              else if(cs == '[')                  st.push(']');              else if(cs == '{')                  st.push('}');              else if(st.isEmpty() || st.pop() != cs)                  return false;          }          if(st.isEmpty())              return true;          else              return false;      }  }   public class Solution { public boolean isValid(String s) { Stack<Character> st = new Stack<Character>(); for(int i = 0;i<s.length();i++) { char cs = s.charAt(i); if(cs == '(') st.push(')'); else if(cs == '[') st.push(']'); else if(cs == '{') st.push('}'); else if(st.isEmpty() || st.pop() != cs) return false; } if(st.isEmpty()) return true; else return false; } }

    转载请注明原文地址: https://ju.6miu.com/read-666047.html

    最新回复(0)