• [leetcode]720. Longest Word in Dictionary字典中最长的单词


    b.compareTo(a)

    这个函数是比较两个值得大小,如果b比a大,那么返回1

    如果小,那么返回-1,相等返回0

    如果比较的是字符串,那么比较字典编纂顺序,b靠前返回-1,靠后返回1

    这个题的核心虽然是hashtable,但是这个方法还是很重要的,因为自己实现比较字符串很麻烦

    /*
        用一个Hashset来判断子串是不是在集合里
        然后遍历出最长的就行
        长度相同的用compareTo方法判断谁的字典顺序靠前
        这个题最难的感觉其实是不知道compareTo方法,自己实现还挺麻烦的
         */
        public String longestWord(String[] words) {
            //构建set
            Set<String> set = new HashSet<>();
            for (String s :
                    words) {
                set.add(s);
            }
            //记录最大长度字符串
            String res = "";
            //遍历判断
            for (String s :
                    words) {
                //两种情况值得更新,一种是长度更长,一种是长度一样但是顺序靠前
                if (s.length() > res.length() || (s.length() == res.length() && s.compareTo(res) < 0)) {
                    //判断字符串的子串在不在集合里
                    boolean judge = true;
                    for (int i = s.length() - 1; i > 0; i--) {
                        if (!set.contains(s.substring(0, i))) {
                            judge = false;
                            break;
                        }
                    }
                    if (judge)
                        res = s;
                }
            }
            return res;
        }
  • 相关阅读:
    -_-#【缓存】Content-Type 错误
    ♫【事件】事件处理程序
    -_-#【Node】Express 400 Error: ENOENT, open
    【JS】定位
    【JS】壹零零壹
    洛谷—— P1018 乘积最大
    洛谷—— P1017 进制转换
    洛谷——P1011 车站
    洛谷——P2241 统计方形(数据加强版)
    洛谷——P1548 棋盘问题
  • 原文地址:https://www.cnblogs.com/stAr-1/p/8343352.html
Copyright © 2020-2023  润新知