From 3351f789d600f72ba6e92e2c6b2de9517a03a201 Mon Sep 17 00:00:00 2001 From: YuCheng Hu Date: Thu, 29 Apr 2021 12:04:40 -0400 Subject: [PATCH] Update code for the return firstUniqCharString --- .../LeetCode0387FirstUniqueCharacterTest.java | 38 ++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/toolkits/codebank/src/test/java/com/ossez/toolkits/codebank/tests/leetcode/LeetCode0387FirstUniqueCharacterTest.java b/toolkits/codebank/src/test/java/com/ossez/toolkits/codebank/tests/leetcode/LeetCode0387FirstUniqueCharacterTest.java index e5b08317b1..2ec0e02382 100644 --- a/toolkits/codebank/src/test/java/com/ossez/toolkits/codebank/tests/leetcode/LeetCode0387FirstUniqueCharacterTest.java +++ b/toolkits/codebank/src/test/java/com/ossez/toolkits/codebank/tests/leetcode/LeetCode0387FirstUniqueCharacterTest.java @@ -7,6 +7,7 @@ import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.LinkedHashMap; +import java.util.Locale; import java.util.Map; /** @@ -35,11 +36,12 @@ public class LeetCode0387FirstUniqueCharacterTest { String data = "lovelycomossez"; System.out.println(firstUniqChar(data)); + System.out.println(firstUniqCharString(data)); } /** - * Deserialize from array to tree + * Return the first Uniq Char String index * * @param data * @return @@ -76,5 +78,39 @@ public class LeetCode0387FirstUniqueCharacterTest { } + /** + * Return the first Uniq Char String without using Map + * @param data + * @return + */ + private String firstUniqCharString(String data) { + // NULL CHECK + if (data.equals("")) { + return ""; + } + + char[] strArray = data.toCharArray(); + String retStr = ""; + + if (data.length() == 1) { + retStr = data; + } + + for (int i = 0; i < strArray.length; i++) { + String valStr = Character.toString(strArray[i]); + String rData = data; + rData = data.replace(valStr, ""); + rData = rData.replace(valStr.toUpperCase(Locale.ROOT), ""); + rData = rData.replace(valStr.toLowerCase(Locale.ROOT), ""); + + if (rData.length() == 0) { + retStr = ""; + } else if (rData.length() + 1 == data.length()) { + retStr = valStr; + break; + } + } + return retStr; + } }