题目来源于力扣(LeetCode)
一、题目
题目相关标签:字符串
说明:
- 两个字符串长度均处于区间
[1 - 100]
。- 字符串中的字符仅含有
'a'~'z'
。
二、解题思路
-
分析题目知道:空序列为所有字符串的子序列,任何字符串为其自身的子序列。
-
判断两个字符串是否相等,相等时,一定不存在特殊的子序列
-
再判断两个字符串的长度,返回长度最大的一个字符串
因为长度最大的那个字符串,我们可以使字符串本身作为一个特殊子序列,则长度较小的字符串中一定不包含该序列,所以得知,最长的特殊子序列是长度最大的那个值
三、代码实现
public static int findLUSlength(String a, String b) {
// 两个字符串内容相同时,没有最长特殊序列
if (a.equals(b)) {
return -1;
}
// 内容不相同时返回长度较大的字符串长度
// 因为长度较大的字符串自身一定不会是长度较小字符串的子序列
return a.length() >= b.length() ? a.length() : b.length();
}
四、执行用时
五、部分测试用例
public static void main(String[] args) {
String a = "aba", b = "cdc"; // output:3
// String a = "aaa", b = "bbb"; // output:3
// String a = "aaa", b = "aaa"; // output:-1
int result = findLUSlength(a, b);
System.out.println(result);
}