• 今天面试问了一道题。说一串字符串由这几个符号组成"<>{}[]()”,写一个算法,例如如果组成方式为“<>{[]}{}()”这种,也就是XML格式那种则返回true。否则返回false;


    原创

    今天面试问了一道题。说一串字符串由这几个符号组成"<>{}[]()”,写一个算法,例如如果组成方式为“<>{[]}{}()”这种,也就是XML格式那种则返回true。否则返回false;

    当时没想出来, 只想到了回文数解决办法。回文数解决办法是颠倒比较,相等为true;

    换xml格式当时真没想到啥好方法;

    在回来的路上想到了。。

    。。

    去重,吧临近的一组去掉,在递归调用比较去重直到最后,如果有剩下则不返回false;否则true;

    代码为

    package hao;
    
    import java.util.HashMap;
    import java.util.Map;
    
    public class duichenpanduan {
    
        public static String a = "<>{><}(<<>><>)";
        public static Map<String, String> map = new HashMap<>();
    
        public static void main(String[] args) {
            map.put("<", ">");
            map.put("{", "}");
            map.put("[", "]");
            map.put("(", ")");
            System.out.println(test(a, a));
        }
    
        public static boolean test(String a1, String a2) {
            for (int i = 0; i < a1.length() - 1; i++) {
                String c = a1.charAt(i + 1) + "";
                String b = map.get(a1.charAt(i) + "");
                if (c.equals(b)) {
                    String a = a1.replaceFirst("\" + a1.charAt(i) + "\" + a1.charAt(i + 1), "");
                    System.out.println("去对称前=" + a1);
                    System.out.println("去对称后=" + a);
                    if(a.equals("")){
                        return  true;
                    }else if ( !a.equals(a1) || a.length() % 2 != 0) {
                        return test(a, a1);
                    } 
                }
            }
            return false;
        }
    }
    String a = "<>{}(<<>><>)";的比较结果

    String a = "<>{}(<<>><>)";的比较结果

    可能写的有些麻烦,欢迎指正,有更好的方法欢迎赐教;
    
    
    
  • 相关阅读:
    wcf连接数据库用sqlhelper,连接数一直没有释放反而增加
    Assembly.GetManifestResourceStream为null
    webapi <Message>已拒绝为此请求授权。</Message>
    未找到与名为“xxx”的控制器匹配的类型。
    Eclipse Ctrl+鼠标左键不能查看源代码
    WEB API 用MemoryStream流做下载功能
    mysql繁字体报错,Incorrect string value: 'xE9_' for column 'UserName' at row 1
    学信网模拟登录2
    选择排序
    mysql学习笔记
  • 原文地址:https://www.cnblogs.com/hao66/p/6973270.html
Copyright © 2020-2023  润新知