最长特殊序列(二)

解决方案

方法一:暴力解法 【超出时间限制】

暴力解法中,生成两个字符串所有的子序列共 2的 n 个,将其存储在 hashmap 中,并记录每个子序列出现的次数。然后找出出现次数为 1 的最长子序列。如果不存在这样的子序列,返回 −1 。

Java 实现

复制代码
public class Solution {
    public int findLUSlength(String a, String b) {
        HashMap < String, Integer > map = new HashMap < > ();
        for (String s: new String[] {a, b}) {
            for (int i = 0; i < (1 << s.length()); i++) {
                String t = "";
                for (int j = 0; j < s.length(); j++) {
                    if (((i >> j) & 1) != 0)
                        t += s.charAt(j);
                }
                if (map.containsKey(t))
                    map.put(t, map.get(t) + 1);
                else
                    map.put(t, 1);
            }
        }
        int res = -1;
        for (String s: map.keySet()) {
            if (map.get(s) == 1)
                res = Math.max(res, s.length());
        }
        return res;
    }
}

复杂度分析

相关推荐
言慢行善几秒前
SpringBoot中的注解介绍
java·spring boot·后端
一勺菠萝丶2 分钟前
管理后台使用手册在线预览与首次登录引导弹窗实现
java·前端·数据库
feng_you_ying_li4 分钟前
C++11,{}的初始化情况与左右值及其引用
开发语言·数据结构·c++
xiaotao13111 分钟前
JS new 操作符完整执行过程
开发语言·前端·javascript·原型模式
TE-茶叶蛋15 分钟前
结合登录页-PHP基础知识点解析
android·开发语言·php
无巧不成书021815 分钟前
Java包(package)全解:从定义、使用到避坑,新手零基础入门到实战
java·开发语言·package·java包
身如柳絮随风扬26 分钟前
SpringMVC 异常处理?Spring 父子容器?
java·spring·mvc
锅挤28 分钟前
数据结构复习(第一章):绪论
数据结构·算法
skywalker_1128 分钟前
力扣hot100-5(盛最多水的容器),6(三数之和)
算法·leetcode·职场和发展
WangJunXiang631 分钟前
Python网络编程
开发语言·网络·python