最长特殊序列(二)

解决方案

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

暴力解法中,生成两个字符串所有的子序列共 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;
    }
}

复杂度分析

相关推荐
寄存器漫游者4 分钟前
数据结构 二叉树核心概念与特性
数据结构·算法
Big Cole4 分钟前
PHP面试题(核心基础篇:垃圾回收+自动加载)
android·开发语言·php
rainbow68895 分钟前
Java并发三要素:原子性、可见性、有序性
java
m0_706653237 分钟前
跨语言调用C++接口
开发语言·c++·算法
小罗和阿泽8 分钟前
复习 Java(2)
java·开发语言
皮皮哎哟10 分钟前
数据结构:从队列到二叉树基础解析
c语言·数据结构·算法·二叉树·队列
无小道12 分钟前
Qt——信号槽
开发语言·qt
老骥伏枥~13 分钟前
C# if / else 的正确写法与反例
开发语言·c#
一匹电信狗18 分钟前
【高阶数据结构】并查集
c语言·数据结构·c++·算法·leetcode·排序算法·visual studio
不懒不懒20 分钟前
【HTML容器与表格布局实战指南】
java·开发语言