From 4be100ec9447f55395629c9ca671b69a08872e29 Mon Sep 17 00:00:00 2001 From: fx10923 <89697431+fx10923@users.noreply.github.com> Date: Thu, 28 Oct 2021 15:42:02 +0700 Subject: [PATCH] change StringCompression.java I want to add a new method to check if the input string contains any number. --- .../ctci/arraysandstrings/StringCompression.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/main/java/com/ctci/arraysandstrings/StringCompression.java b/src/main/java/com/ctci/arraysandstrings/StringCompression.java index 5c2df955..73d59449 100644 --- a/src/main/java/com/ctci/arraysandstrings/StringCompression.java +++ b/src/main/java/com/ctci/arraysandstrings/StringCompression.java @@ -17,6 +17,9 @@ private static String compressString(String str) { StringBuilder compressedSb = new StringBuilder(); int countConsecutive = 0; for (int i = 0; i < str.length(); i++) { + if(stringContainsNumber(str)) { + return str; + } countConsecutive++; /* If next character is different than current, append this char to result. */ @@ -28,6 +31,16 @@ private static String compressString(String str) { } return compressedSb.length() < str.length() ? compressedSb.toString() : str; } + + private static boolean stringContainsNumber(String str) { + int[] numArr = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; + for(int i = 0; i < numArr.length; i++) { + if(str.contains(String.valueOf(numArr[i]))) { + return true; + } + } + return false; + } public static void main(String[] args) { System.out.println("aabccccaaa: " + compressString("aabccccaaa"));