521. 最长特殊序列 Ⅰ『简单』

题目来源于力扣(LeetCode

一、题目

521. 最长特殊序列 Ⅰ

题目相关标签:字符串

说明:

  1. 两个字符串长度均处于区间 [1 - 100]
  2. 字符串中的字符仅含有 'a'~'z'

二、解题思路

  1. 分析题目知道:空序列为所有字符串的子序列,任何字符串为其自身的子序列

  2. 判断两个字符串是否相等,相等时,一定不存在特殊的子序列

  3. 判断两个字符串的长度,返回长度最大的一个字符串

    因为长度最大的那个字符串,我们可以使字符串本身作为一个特殊子序列,则长度较小的字符串中一定不包含该序列,所以得知,最长的特殊子序列是长度最大的那个值

三、代码实现

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);
}
posted @ 2020-05-22 23:06  知音12138  阅读(206)  评论(0编辑  收藏  举报