毎日1題LeetCode[12日目]

2482 ワード

毎日1題LeetCode[12日目]
Valid Parenthese
Description:
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.

Subscribe to see which companies asked this question.

翻訳:
      ,       '(,),{,},[,]'                     。
     :                    ,  "()" "(){}[]"        。  
"([]","([)]"    。

問題解決の考え方:
  • 最初は「({})」という入力が正しいのかどうか疑問に思っていましたが、正しければ簡単に前後比較することはできません.Top Solutionを見て、このような答えが正しいことに気づきました.スタックの形式を采用して、とても巧みで、后でこのような対称の问题に出会って、スタックの思想は忘れることができません!!万精油ですね.このテーマについて.簡単にトップソリューションの考え方を話します.
  • はスタックの先入後出の特性を利用して、毎回文字の残りの半分をスタックに押し付けて、判断条件はすべての文字の半分だけあって、もしすべてこれらの文字ではないならば、スタックからポップアップする文字が現在の文字と等しいかどうかを判断して、もし等しいならば表して、今まではすべて一致したハで、もし等しくないならば、あるいは現在のスタックはすでにEmptyで表して、この入力が非対称であるハはfalse
  • を返す
    Javaコード:
    public class Solution {
        public boolean isValid(String s){
            Stack bracket=new Stack<>();
            for(char c:s.toCharArray()){
                if(c=='('){
                    bracket.push(')');
                }else if(c=='{'){
                    bracket.push('}');
                }else if(c=='['){
                    bracket.push(']');
                }else if(bracket.isEmpty() || bracket.pop()!=c){
                    return false;
                }
            }
            return bracket.isEmpty();
        }
    }

    コードの品質を高めることは:美しい構想を蓄積して、良質な細部の過程です.