leetcode-521-easy

Longest Uncommon Subsequence I

Given two strings a and b, return the length of the longest uncommon subsequence between a and b. If the longest uncommon subsequence does not exist, return -1.

An uncommon subsequence between two strings is a string that is a subsequence of one but not the other.

A subsequence of a string s is a string that can be obtained after deleting any number of characters from s.

For example, "abc" is a subsequence of "aebdc" because you can delete the underlined characters in "aebdc" to get "abc". Other subsequences of "aebdc" include "aebdc", "aeb", and "" (empty string).
Example 1:

Input: a = "aba", b = "cdc"
Output: 3
Explanation: One longest uncommon subsequence is "aba" because "aba" is a subsequence of "aba" but not "cdc".
Note that "cdc" is also a longest uncommon subsequence.
Example 2:

Input: a = "aaa", b = "bbb"
Output: 3
Explanation: The longest uncommon subsequences are "aaa" and "bbb".
Example 3:

Input: a = "aaa", b = "aaa"
Output: -1
Explanation: Every subsequence of string a is also a subsequence of string b. Similarly, every subsequence of string b is also a subsequence of string a.
Constraints:

1 <= a.length, b.length <= 100
a and b consist of lower-case English letters.

思路一:初看题以为比较难解,不过解题过程中把一个个情况排除后,发现是比较简单的题。完全分配,a 和 b 只可能出现两种情况,

  • 等长
  • 不等长
    对于等长的情况,继续完全分类
  • 出现的字符一致
  • 出现的字符不一致
    对上面的分类情况进行判断即可
    public int findLUSlength(String a, String b) {
        int aLength = a.length();
        int bLength = b.length();
        if (aLength != bLength) {
            return Math.max(aLength, bLength);
        }

        Set<Character> set = new HashSet<>();
        for (int i = 0; i < aLength; i++) {
            set.add(a.charAt(i));
        }

        for (int i = 0; i < bLength; i++) {
            if (!set.contains(b.charAt(i))) {
                return aLength;
            }
        }

        if (a.equals(b)) {
            return -1;
        } else {
            return aLength;
        }
    }

思路二:看了题解,发现不用判断出现的字符是否一致,直接看字符串是否一致就行

posted @ 2023-01-08 19:41  iyiluo  阅读(29)  评论(0)    收藏  举报