521. Longest Uncommon Subsequence I

1. Description

Given two strings a and b, find the length of the longest uncommon subsequence between them.
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).
An uncommon subsequence between two strings is a string that is a subsequence of one but not the other.
Return the length of the longest uncommon subsequence between a and b. If the longest uncommon subsequence doesn’t exist, return -1.

2. Example

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.

3. Note

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

4. Solutions

My Accepted Solution

m = i_str1.size(), n = i_str2.size()
Time complexity: O(min(m, n))
Space complexity: O(1)

// there are three cases:
// 1. i_str1 == i_str2, they are equal, so there is no uncommon subsequence
// 2. i_str1.size() == i_str2.size() && i_str1 != i_str2, any string coule be the uncommon subsequence
// 3. i_str1.size() != i_str2.size(), any string could be itselv subsequence
// and the longer one could not be the shorter one's subsequence, so the longer one is the longest uncommon subsequence

class Solution 
{
public:
    int findLUSlength(string &i_str1, string &i_str2) 
    {
        if(i_str1 == i_str2) return -1;
        
        return max(i_str1.size(), i_str2.size());
    }
};
comments powered by Disqus