package com.fishercoder.solutions;

/**
 * Given a group of two strings, you need to find the longest uncommon subsequence of this group of two strings.
 * The longest uncommon subsequence is defined as the longest subsequence of one of these strings and this subsequence should not be any subsequence of the other strings.
 * A subsequence is a sequence that can be derived from one sequence by deleting some characters without changing the order of the remaining elements.
 * Trivially, any string is a subsequence of itself and an empty string is a subsequence of any string.
 * The input will be two strings, and the output needs to be the length of the longest uncommon subsequence. If the longest uncommon subsequence doesn't exist, return -1.

 Example 1:
 Input: "aba", "cdc"
 Output: 3
 Explanation: The longest uncommon subsequence is "aba" (or "cdc"),
 because "aba" is a subsequence of "aba",
 but not a subsequence of any other strings in the group of two strings.
 Note:

 Both strings' lengths will not exceed 100.
 Only letters from a ~ z will appear in input strings.
 */
public class _521 {
    //The gotcha point of this question is:
    //1. if a and b are identical, then there will be no common subsequence, return -1
    //2. else if a and b are of equal length, then any one of them will be a subsequence of the other string
    //3. else if a and b are of different length, then the longer one is a required subsequence because the longer string cannot be a subsequence of the shorter one

    //Or in other words, when a.length() != b.length(), no subsequence of b will be equal to a, so return Math.max(a.length(), b.length())
    public int findLUSlength(String a, String b) {
        if (a.equals(b)) {
            return -1;
        }
        return Math.max(a.length(), b.length());
    }

}

@@ -33,16 +33,58 @@
 s;%0A%0A/**%0A
+ * 521. Longest Uncommon Subsequence I%0A *%0A
  * Given
@@ -722,16 +722,19 @@
 equence.
+%0A *
  If the 
@@ -1020,16 +1020,16 @@
 gs.%0A
+%0A
  Note:%0A
-%0A
  Bot
@@ -1151,18 +1151,71 @@
 1 %7B%0A    
-//
+public static class Solution1 %7B%0A        /**%0A         * 
 The gotc
@@ -1248,18 +1248,23 @@
 is:%0A    
-//
+     * 
 1. if a 
@@ -1340,18 +1340,23 @@
  -1%0A    
+   
-//
+  * 
 2. else 
@@ -1454,18 +1454,23 @@
 ing%0A    
-//
+     * 
 3. else 
@@ -1624,15 +1624,19 @@
 one%0A
-%0A
+  
     
-//
+   * 
 Or i
@@ -1764,16 +1764,32 @@
 ngth())%0A
+         */%0A    
     publ
@@ -1839,16 +1839,20 @@
         
+ 
+   
 if (a.eq
@@ -1870,24 +1870,28 @@
             
+    
 return -1;%0A 
@@ -1897,18 +1897,26 @@
         
+ 
-%7D%0A
+   %7D%0A    
         
@@ -1960,13 +1960,22 @@
 ));%0A    
+    %7D%0A    
 %7D
-%0A
 %0A%7D%0A

refactor 521