zoukankan      html  css  js  c++  java
  • 符号匹配

    题目:给一个字符串,判断其中的符号是否匹配,如“[]{}()”,这个匹配;但“[(])}{”这样的就不匹配。

    思路:利用栈的特性。

    import java.util.Stack;
    
    public class MatchClass {
        
        
        public static void main(String[] args){
            String str = "(){}[]";
            System.out.println(isMatch(str));
        }
        
        public static boolean isMatch(String str){
            if(str.length() == 0 || str == null)
                return false;
            char[] chs = str.toCharArray();
            Stack<Character> stack = new Stack<Character>();
            int i =0;
            String left = "({[";
            String right = ")}]";
            while(i<chs.length){
                if(left.contains(chs[i]+"")){
                    stack.push(chs[i]);
                }else{
                    if(stack.isEmpty()){
                        return false;
                    }else{
                        char topChar = stack.pop();
                        int leftIndex = left.indexOf(topChar);
                        int rightIndex = right.indexOf(chs[i]);
                        if(leftIndex != rightIndex)
                            return false;
                    }
                }
                i++;
            }
            return stack.isEmpty();
        }
    
    }
  • 相关阅读:
    每日总结
    每日总结
    每日总结
    每日总结
    每日总结
    每日总结
    每日总结
    每日总结
    Java学习哈希表2
    Java学习哈希表1
  • 原文地址:https://www.cnblogs.com/lfdingye/p/7363771.html
Copyright © 2011-2022 走看看