栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

LeetCode——522.最长特殊序列 II

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

LeetCode——522.最长特殊序列 II

通过万岁!!!

  • 题目:给你一个字符串数组,然后让你看一下数组中,那么字符串是满足条件的,最长的。条件就是这个字符串,不能是其他字符串的子串。
  • 思路:我这里就是暴力破解了,首先双层循环遍历数组,然后i和j进行比较。看一下i是不是j的子串,如果是,则i直接下一个即可, 如果都不满足,则看看这个字符串的长度,与ans取最大的即可。
  • 技巧:暴力和剪枝

java代码

class Solution {
    public int findLUSlength(String[] strs) {
        int ans = -1;
        out:
        for (int i = 0; i < strs.length; i++) {
            for (int j = 0; j < strs.length; j++) {
                if (i == j) {
                    continue;
                }
                if (isSonString(strs[i], strs[j])) {
                    continue out;// 对外层循环继续continue,因为i已经是j的子串了
                }
            }
            ans = Math.max(ans, strs[i].length());
        }
        return ans;
    }


    public boolean isSonString(String str1, String str2) {
        int len1 = str1.length();
        int len2 = str2.length();
        int i1 = 0, i2 = 0;
        while (i1 < len1 && i2 < len2) {
            if (str1.charAt(i1) == str2.charAt(i2)) {
                i1++;
                i2++;
            } else {
                i2++;
            }
        }
        if (i1 == len1) {// 是子串
            return true;
        } else {
            return false;
        }
    }
}
  • 总结:题目不是特别难,但是主要是用暴力的方法有点不甘心,总体来说,时间复杂度还行,就这样吧。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1000439.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号