521. Longest Uncommon Subsequence I

Given two strings a and b, find the length of the longest uncommon subsequence between them.

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.

 

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.

Rust Solution

struct Solution;

impl Solution {
    fn find_lu_slength(a: String, b: String) -> i32 {
        if a == b {
            -1
        } else {
            a.len().max(b.len()) as i32
        }
    }
}

#[test]
fn test() {
    let a = "aba".to_string();
    let b = "cdc".to_string();
    assert_eq!(Solution::find_lu_slength(a, b), 3);
}

Having problems with this solution? Click here to submit an issue on github.