# 522. Longest Uncommon Subsequence II

## Problem

Given an array of strings strs, return the length of the longest uncommon subsequence between them. If the longest uncommon subsequence does not exist, return -1.

An uncommon subsequence between an array of strings is a string that is a subsequence of one string but not the others.

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: strs = ["aba","cdc","eae"]
Output: 3
```

Example 2:

```
Input: strs = ["aaa","aaa","aa"]
Output: -1
```

Constraints:

- 2 <= strs.length <= 50
- 1 <= strs[i].length <= 10
- strs[i] consists of lowercase English letters.

## Code

```
class Solution {
public int findLUSlength(String[] strs) {
Arrays.sort(strs, (s1, s2) -> s2.length() - s1.length());
for (int i = 0; i < strs.length; i++) {
String curr = strs[i];
int count = 0;
for (int j = 0; j < strs.length; j++) {
if (i != j && !isSub(curr, strs[j])) {
count++;
}
}
if (count == strs.length - 1) {
return curr.length();
}
}
return -1;
}
public boolean isSub(String s1, String s2) {
if(s1.length() > s2.length()) return false;
int index = 0;
for (int i = 0; i < s2.length(); i++) {
if(index == s1.length()) return true;
if (s1.charAt(index) == s2.charAt(i)) index++;
}
return index == s1.length();
}
}
```

按 <- 键看上一题！
521. Longest Uncommon Subsequence I

按 -> 键看下一题！
523. Continuous Subarray Sum