From 35b1bccf1a3821d3c4a9b6ce7e4fa7ccda6510a2 Mon Sep 17 00:00:00 2001 From: Eason Yan Date: Tue, 8 Aug 2017 11:39:29 -0700 Subject: [PATCH 1/7] Add solution --- .idea/compiler.xml | 16 +++++++++++++ .idea/libraries/Maven__junit_junit_4_12.xml | 13 ++++++++++ .../Maven__org_hamcrest_hamcrest_core_1_3.xml | 13 ++++++++++ .idea/misc.xml | 13 ++++++++++ .idea/modules.xml | 8 +++++++ .idea/vcs.xml | 6 +++++ leetcode-algorithms.iml | 16 +++++++++++++ .../java/com/fishercoder/solutions/_459.java | 24 +++++++++++++++++-- 8 files changed, 107 insertions(+), 2 deletions(-) create mode 100644 .idea/compiler.xml create mode 100644 .idea/libraries/Maven__junit_junit_4_12.xml create mode 100644 .idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 leetcode-algorithms.iml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000000..905fcd37d5 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__junit_junit_4_12.xml b/.idea/libraries/Maven__junit_junit_4_12.xml new file mode 100644 index 0000000000..d411041745 --- /dev/null +++ b/.idea/libraries/Maven__junit_junit_4_12.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml new file mode 100644 index 0000000000..f58bbc1127 --- /dev/null +++ b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000000..d30d09e204 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000000..032a358cd2 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000000..94a25f7f4c --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/leetcode-algorithms.iml b/leetcode-algorithms.iml new file mode 100644 index 0000000000..4e3316bc3d --- /dev/null +++ b/leetcode-algorithms.iml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/fishercoder/solutions/_459.java b/src/main/java/com/fishercoder/solutions/_459.java index fa79948304..f381285572 100644 --- a/src/main/java/com/fishercoder/solutions/_459.java +++ b/src/main/java/com/fishercoder/solutions/_459.java @@ -35,9 +35,28 @@ public static boolean repeatedSubstringPattern(String str) { } } - return (pattern[n-1] > 0 && n%(n-pattern[n-1]) == 0); + return (pattern[n - 1] > 0 && n % (n-pattern[n - 1]) == 0); + } + // the idea is that the length substring will be divisor of the length s, then find the + //sub string and append s.length/sub.length times to check if the string is equaled to the original string. + //credit: + public static boolean repeatedSubstringPattern_2(String s) { + int len = s.length(); + for (int i = len/2; i >=1; i--) { + if (len % i == 0) { + int n = len / i; + String sub = s.substring(0, i); + StringBuilder sb = new StringBuilder(); + for (int j = 0; j < n; j++) { + sb.append(sub); + } + if (sb.toString().equals(s)) { + return true; + } + } + } + return false; } - public static void main(String...args){ // String str = "aba"; // String str = "abab";//should be true @@ -47,5 +66,6 @@ public static void main(String...args){ // String str = "abababc"; String str = "abababaaba"; System.out.println(repeatedSubstringPattern(str)); + System.out.println(repeatedSubstringPattern_2(str)); } } From f781d8d76ca60a6ac4e9ab293ad7f1322583e621 Mon Sep 17 00:00:00 2001 From: Eason Yan Date: Tue, 8 Aug 2017 13:00:54 -0700 Subject: [PATCH 2/7] Add Solution --- src/main/java/com/fishercoder/solutions/_451.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/fishercoder/solutions/_451.java b/src/main/java/com/fishercoder/solutions/_451.java index 9e46628547..ab713d62bf 100644 --- a/src/main/java/com/fishercoder/solutions/_451.java +++ b/src/main/java/com/fishercoder/solutions/_451.java @@ -47,9 +47,9 @@ public class _451 { public String frequencySort(String s) { Map map = new HashMap(); for (char c : s.toCharArray()) map.put(c, map.getOrDefault(c, 0) + 1); - List> list = new ArrayList<>(map.entrySet()); - Collections.sort(list, (o1, o2) -> (o2.getValue()).compareTo(o1.getValue())); - StringBuilder stringBuilder = new StringBuilder(); + List> list = new ArrayList<>(map.entrySet()); + Collections.sort(list, (o1, o2) -> (o2.getValue()).compareTo(o1.getValue())); + StringBuilder stringBuilder = new StringBuilder(); for (Map.Entry entry : list) { for (int i = 0; i < entry.getValue(); i++) { stringBuilder.append(entry.getKey()); From 0566dd4fbfd8d0c7cb05c366381c025a40c2a150 Mon Sep 17 00:00:00 2001 From: Eason Yan Date: Tue, 8 Aug 2017 13:10:06 -0700 Subject: [PATCH 3/7] Add commond --- src/main/java/com/fishercoder/solutions/_459.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/fishercoder/solutions/_459.java b/src/main/java/com/fishercoder/solutions/_459.java index f381285572..6abc0ff4c7 100644 --- a/src/main/java/com/fishercoder/solutions/_459.java +++ b/src/main/java/com/fishercoder/solutions/_459.java @@ -27,7 +27,7 @@ public static boolean repeatedSubstringPattern(String str) { pattern[0] = 0; while (j < n) { - if (str.charAt(cur) == str.charAt(j)){ + if (str.charAt(cur) == str.charAt(j)) { pattern[j++] = ++cur; } else { if (cur == 0) pattern[j++] = 0; From 09aa9102335d194024dd5c02a61f6e6ba8f653c0 Mon Sep 17 00:00:00 2001 From: Eason Yan Date: Tue, 8 Aug 2017 13:20:09 -0700 Subject: [PATCH 4/7] format and add main() --- .../java/com/fishercoder/solutions/_451.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/fishercoder/solutions/_451.java b/src/main/java/com/fishercoder/solutions/_451.java index ab713d62bf..307a570619 100644 --- a/src/main/java/com/fishercoder/solutions/_451.java +++ b/src/main/java/com/fishercoder/solutions/_451.java @@ -44,12 +44,14 @@ */ public class _451 { - public String frequencySort(String s) { + public static String frequencySort(String s) { Map map = new HashMap(); - for (char c : s.toCharArray()) map.put(c, map.getOrDefault(c, 0) + 1); - List> list = new ArrayList<>(map.entrySet()); - Collections.sort(list, (o1, o2) -> (o2.getValue()).compareTo(o1.getValue())); - StringBuilder stringBuilder = new StringBuilder(); + for (char c : s.toCharArray()) { + map.put(c, map.getOrDefault(c, 0) + 1); + } + List> list = new ArrayList<>(map.entrySet()); + Collections.sort(list, (o1, o2) -> (o2.getValue()).compareTo(o1.getValue())); + StringBuilder stringBuilder = new StringBuilder(); for (Map.Entry entry : list) { for (int i = 0; i < entry.getValue(); i++) { stringBuilder.append(entry.getKey()); @@ -57,4 +59,8 @@ public String frequencySort(String s) { } return stringBuilder.toString(); } + public static void main(String[] args) { + String s = "trete" ; + System.out.println(frequencySort(s)); + } } From 923718cab8c1ddc018269e3e6141488bbb3d3a89 Mon Sep 17 00:00:00 2001 From: Eason Yan Date: Tue, 8 Aug 2017 14:08:10 -0700 Subject: [PATCH 5/7] remove unwant files --- src/main/java/com/fishercoder/solutions/_451.java | 10 ++++++++-- src/main/java/com/fishercoder/solutions/_459.java | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/fishercoder/solutions/_451.java b/src/main/java/com/fishercoder/solutions/_451.java index 9e46628547..307a570619 100644 --- a/src/main/java/com/fishercoder/solutions/_451.java +++ b/src/main/java/com/fishercoder/solutions/_451.java @@ -44,9 +44,11 @@ */ public class _451 { - public String frequencySort(String s) { + public static String frequencySort(String s) { Map map = new HashMap(); - for (char c : s.toCharArray()) map.put(c, map.getOrDefault(c, 0) + 1); + for (char c : s.toCharArray()) { + map.put(c, map.getOrDefault(c, 0) + 1); + } List> list = new ArrayList<>(map.entrySet()); Collections.sort(list, (o1, o2) -> (o2.getValue()).compareTo(o1.getValue())); StringBuilder stringBuilder = new StringBuilder(); @@ -57,4 +59,8 @@ public String frequencySort(String s) { } return stringBuilder.toString(); } + public static void main(String[] args) { + String s = "trete" ; + System.out.println(frequencySort(s)); + } } diff --git a/src/main/java/com/fishercoder/solutions/_459.java b/src/main/java/com/fishercoder/solutions/_459.java index f381285572..6abc0ff4c7 100644 --- a/src/main/java/com/fishercoder/solutions/_459.java +++ b/src/main/java/com/fishercoder/solutions/_459.java @@ -27,7 +27,7 @@ public static boolean repeatedSubstringPattern(String str) { pattern[0] = 0; while (j < n) { - if (str.charAt(cur) == str.charAt(j)){ + if (str.charAt(cur) == str.charAt(j)) { pattern[j++] = ++cur; } else { if (cur == 0) pattern[j++] = 0; From 5608fc1b51dea639337968b7911339d3f56752d2 Mon Sep 17 00:00:00 2001 From: Eason Yan Date: Tue, 8 Aug 2017 15:35:36 -0700 Subject: [PATCH 6/7] remove --- .idea/compiler.xml | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 .idea/compiler.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml deleted file mode 100644 index 905fcd37d5..0000000000 --- a/.idea/compiler.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file From 83ccc65a6772229bfd024e0e2993a035d46ce4bf Mon Sep 17 00:00:00 2001 From: Eason Yan Date: Tue, 8 Aug 2017 15:38:22 -0700 Subject: [PATCH 7/7] remove all? --- .idea/libraries/Maven__junit_junit_4_12.xml | 13 ------------- .../Maven__org_hamcrest_hamcrest_core_1_3.xml | 13 ------------- .idea/misc.xml | 13 ------------- .idea/modules.xml | 8 -------- .idea/vcs.xml | 6 ------ leetcode-algorithms.iml | 16 ---------------- 6 files changed, 69 deletions(-) delete mode 100644 .idea/libraries/Maven__junit_junit_4_12.xml delete mode 100644 .idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml delete mode 100644 .idea/misc.xml delete mode 100644 .idea/modules.xml delete mode 100644 .idea/vcs.xml delete mode 100644 leetcode-algorithms.iml diff --git a/.idea/libraries/Maven__junit_junit_4_12.xml b/.idea/libraries/Maven__junit_junit_4_12.xml deleted file mode 100644 index d411041745..0000000000 --- a/.idea/libraries/Maven__junit_junit_4_12.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml deleted file mode 100644 index f58bbc1127..0000000000 --- a/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index d30d09e204..0000000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 032a358cd2..0000000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 94a25f7f4c..0000000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/leetcode-algorithms.iml b/leetcode-algorithms.iml deleted file mode 100644 index 4e3316bc3d..0000000000 --- a/leetcode-algorithms.iml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file