From c04cf6be6621e9be28c104d6fe295b71b0699fb8 Mon Sep 17 00:00:00 2001 From: deadmarshal Date: Tue, 4 Feb 2025 20:32:22 +0330 Subject: TWC307 --- challenge-307/deadmarshal/java/Ch1.java | 21 +++++++++++++++++++++ challenge-307/deadmarshal/java/Ch2.java | 24 ++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 challenge-307/deadmarshal/java/Ch1.java create mode 100644 challenge-307/deadmarshal/java/Ch2.java (limited to 'challenge-307/deadmarshal/java') 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 check_order(int[] arr) { + List 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; + } +} -- cgit