aboutsummaryrefslogtreecommitdiff
path: root/challenge-307/deadmarshal/java
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-307/deadmarshal/java')
-rw-r--r--challenge-307/deadmarshal/java/Ch1.java21
-rw-r--r--challenge-307/deadmarshal/java/Ch2.java24
2 files changed, 45 insertions, 0 deletions
diff --git a/challenge-307/deadmarshal/java/Ch1.java b/challenge-307/deadmarshal/java/Ch1.java
new file mode 100644
index 0000000000..091b91b204
--- /dev/null
+++ b/challenge-307/deadmarshal/java/Ch1.java
@@ -0,0 +1,21 @@
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+public class Ch1 {
+ public static void main(String[] args) {
+ System.out.println(check_order(new int[]{5, 2, 4, 3, 1}));
+ System.out.println(check_order(new int[]{1, 2, 1, 1, 3}));
+ System.out.println(check_order(new int[]{3, 1, 3, 2, 3}));
+ }
+
+ private static List<Integer> check_order(int[] arr) {
+ List<Integer> ret = new ArrayList<>();
+ int[] sorted = Arrays.copyOf(arr, arr.length);
+ Arrays.sort(sorted);
+ for (int i = 0; i < sorted.length; ++i) {
+ if (sorted[i] != arr[i]) ret.add(i);
+ }
+ return ret;
+ }
+}
diff --git a/challenge-307/deadmarshal/java/Ch2.java b/challenge-307/deadmarshal/java/Ch2.java
new file mode 100644
index 0000000000..a4ef4c615d
--- /dev/null
+++ b/challenge-307/deadmarshal/java/Ch2.java
@@ -0,0 +1,24 @@
+import java.util.Objects;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+public class Ch2 {
+ public static void main(String[] args) {
+ System.out.println(
+ find_anagrams(new String[]{"acca", "dog", "god", "perl", "repl"}));
+ System.out.println(
+ find_anagrams(new String[]{"abba", "baba", "aabb", "ab", "ab"}));
+ }
+
+ private static int find_anagrams(String[] arr) {
+ int sum = 1;
+ for (int i = 0; i < arr.length; ++i) {
+ arr[i] = Stream.of(arr[i].split(""))
+ .sorted()
+ .collect(Collectors.joining());
+ }
+ for (int i = 1; i < arr.length; ++i)
+ if (!Objects.equals(arr[i - 1], arr[i])) sum++;
+ return sum;
+ }
+}