解决方案
方法一:暴力解法 【超出时间限制】
暴力解法中,生成两个字符串所有的子序列共 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;
}
}
复杂度分析
