From 5e5b69c9d242b327da5ce62947a7e8f0d2fd0668 Mon Sep 17 00:00:00 2001 From: YuCheng Hu Date: Wed, 28 Apr 2021 23:38:57 -0400 Subject: [PATCH 1/3] Finish prime number test to check prime number too 100 --- .../tests/algorithm/PrimeNumbersTest.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/toolkits/codebank/src/test/java/com/ossez/toolkits/codebank/tests/algorithm/PrimeNumbersTest.java b/toolkits/codebank/src/test/java/com/ossez/toolkits/codebank/tests/algorithm/PrimeNumbersTest.java index 918fb247e1..5af079194a 100644 --- a/toolkits/codebank/src/test/java/com/ossez/toolkits/codebank/tests/algorithm/PrimeNumbersTest.java +++ b/toolkits/codebank/src/test/java/com/ossez/toolkits/codebank/tests/algorithm/PrimeNumbersTest.java @@ -1,6 +1,5 @@ package com.ossez.toolkits.codebank.tests.algorithm; - import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInstance; import org.slf4j.Logger; @@ -11,9 +10,9 @@ import java.util.List; /** *

- * More details about question see link below + * Prime numbers from 1 to 100 *

*

@@ -34,21 +33,21 @@ public class PrimeNumbersTest { int N = 100; List primeNumberList = new ArrayList<>(); + for (int i = 2; i < N; i++) { - if (isPrimeNumber(i)) - primeNumberList.add(i); - } + if (isPrimeNumber(i)) + primeNumberList.add(i); + } logger.debug("primeNumber Count -[{}]", primeNumberList.size()); - logger.debug("primeNumber Count -[{}]", primeNumberList); + logger.debug("primeNumber Count -[{}]", primeNumberList); } /** * @param number * @return */ - public boolean isPrimeNumber(int number) { - System.out.println(5%3);; + private boolean isPrimeNumber(int number) { for (int i = 2; i < number; i++) { if (number % i == 0) { return false; From 3351f789d600f72ba6e92e2c6b2de9517a03a201 Mon Sep 17 00:00:00 2001 From: YuCheng Hu Date: Thu, 29 Apr 2021 12:04:40 -0400 Subject: [PATCH 2/3] 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; + } } From fa7fdb0f6f60830d72581229a697e111ff8a2b48 Mon Sep 17 00:00:00 2001 From: YuCheng Hu Date: Fri, 30 Apr 2021 00:55:15 -0400 Subject: [PATCH 3/3] word-wrap Function Test function --- .../codebank/tests/BlackboardTest.java | 121 ++++++++++++++++-- .../tests/algorithm/WordWrapTest.java | 79 ++++++++++++ 2 files changed, 189 insertions(+), 11 deletions(-) create mode 100644 toolkits/codebank/src/test/java/com/ossez/toolkits/codebank/tests/algorithm/WordWrapTest.java diff --git a/toolkits/codebank/src/test/java/com/ossez/toolkits/codebank/tests/BlackboardTest.java b/toolkits/codebank/src/test/java/com/ossez/toolkits/codebank/tests/BlackboardTest.java index 679d7d1c84..608eecdc8d 100644 --- a/toolkits/codebank/src/test/java/com/ossez/toolkits/codebank/tests/BlackboardTest.java +++ b/toolkits/codebank/src/test/java/com/ossez/toolkits/codebank/tests/BlackboardTest.java @@ -1,17 +1,19 @@ package com.ossez.toolkits.codebank.tests; import com.google.api.gbase.client.NumberUnit; +import com.ibm.icu.impl.CharTrie; import com.ossez.toolkits.codebank.common.model.request.TopicRequest; +import org.apache.commons.lang3.CharUtils; +import org.apache.commons.lang3.StringUtils; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.ArrayList; -import java.util.List; +import java.util.*; /** - * This is the test file for something like to quick run. + * This is the test file for something like to quick run.a Diophantine equation is a polynomial equation * Once test finished, we need to move codes to different name, just like when we were student we like to eraser after using. * * @author YuCheng @@ -21,16 +23,65 @@ public class BlackboardTest { private static List loopList = new ArrayList<>(); - /** - * Main Test to Run - */ - @Test + @Test + public void test2st() { + + + } + + @Test + public void test1st() { + + Hashtable hashTable = new Hashtable<>(); + + String data = "aass"; + char[] strArray = data.toCharArray(); + String retStr = ""; +// char xC = Character.toString("C"); +// CharUtils.toChar() + + 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; + } + +// char val1 = strArray[i]; +// for(int j=i; j returnList = new ArrayList<>(); + + String dataStr = ""; + for (String arrayData : words1) { + dataStr = dataStr + arrayData + "-"; + } + + + while (StringUtils.isNotEmpty(dataStr)) { + if (StringUtils.length(dataStr) <= lineLength) { + returnList.add(dataStr); + break; + } + + String subStr = dataStr.substring(0, lineLength); + if (subStr.endsWith("-")) { + subStr = StringUtils.removeEnd(subStr, "-"); + } else { + if (StringUtils.equals(dataStr.substring(lineLength, lineLength + 1), "-")) { + subStr = StringUtils.substring(subStr, 0, lineLength); + } else { + subStr = StringUtils.substring(subStr, 0, StringUtils.lastIndexOf(subStr, "-")); + } + } + returnList.add(subStr); + + + dataStr = StringUtils.replace(dataStr, subStr, ""); + dataStr = StringUtils.removeStart(dataStr, "-"); + dataStr = StringUtils.removeEnd(dataStr, "-"); + } + + + System.out.println(returnList); + + } diff --git a/toolkits/codebank/src/test/java/com/ossez/toolkits/codebank/tests/algorithm/WordWrapTest.java b/toolkits/codebank/src/test/java/com/ossez/toolkits/codebank/tests/algorithm/WordWrapTest.java new file mode 100644 index 0000000000..099d7ff118 --- /dev/null +++ b/toolkits/codebank/src/test/java/com/ossez/toolkits/codebank/tests/algorithm/WordWrapTest.java @@ -0,0 +1,79 @@ +package com.ossez.toolkits.codebank.tests.algorithm; + +import org.apache.commons.lang3.StringUtils; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.ArrayList; +import java.util.List; + +/** + *

+ * word-wrap Function + *

+ *

+ * + * @author YuCheng + */ +@TestInstance(TestInstance.Lifecycle.PER_CLASS) +public class WordWrapTest { + + private final static Logger logger = LoggerFactory.getLogger(WordWrapTest.class); + + /** + * Test word-wrap Function + */ + @Test + public void testMain() { + logger.debug("BEGIN"); + + + String[] words1 = {"The", "day", "began", "as", "still", "as", "the", "night", "abruptly", "lighted", "with", "brilliant", "flame"}; + int lineLength1_1 = 13; + int lineLength1_2 = 20; + + int lineLength = lineLength1_1; + + List returnList = new ArrayList<>(); + + String dataStr = ""; + for (String arrayData : words1) { + dataStr = dataStr + arrayData + "-"; + } + + + while (StringUtils.isNotEmpty(dataStr)) { + if (StringUtils.length(dataStr) <= lineLength) { + returnList.add(dataStr); + break; + } + + String subStr = dataStr.substring(0, lineLength); + if (subStr.endsWith("-")) { + subStr = StringUtils.removeEnd(subStr, "-"); + } else { + if (StringUtils.equals(dataStr.substring(lineLength, lineLength + 1), "-")) { + subStr = StringUtils.substring(subStr, 0, lineLength); + } else { + subStr = StringUtils.substring(subStr, 0, StringUtils.lastIndexOf(subStr, "-")); + } + } + returnList.add(subStr); + + + dataStr = StringUtils.replace(dataStr, subStr, ""); + dataStr = StringUtils.removeStart(dataStr, "-"); + dataStr = StringUtils.removeEnd(dataStr, "-"); + } + + logger.debug("{}", returnList); + } + + +} +