From 128826a5e5fde3dad004c8a1b7dc64ff98f76214 Mon Sep 17 00:00:00 2001 From: Ali Date: Sat, 24 May 2025 08:30:06 +0330 Subject: TWC322 --- challenge-322/deadmarshal/java/Ch1.java | 27 +++++++++++++++++++++++++++ challenge-322/deadmarshal/java/Ch2.java | 24 ++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 challenge-322/deadmarshal/java/Ch1.java create mode 100644 challenge-322/deadmarshal/java/Ch2.java (limited to 'challenge-322/deadmarshal/java') diff --git a/challenge-322/deadmarshal/java/Ch1.java b/challenge-322/deadmarshal/java/Ch1.java new file mode 100644 index 0000000000..e0228f1d7d --- /dev/null +++ b/challenge-322/deadmarshal/java/Ch1.java @@ -0,0 +1,27 @@ +import java.util.Stack; + +public class Ch1 { + public static void main(String[] args) { + System.out.println(string_format("ABC-D-E-F", 3)); + System.out.println(string_format("A-BC-D-E", 2)); + System.out.println(string_format("-A-B-CD-E", 4)); + } + + private static String string_format(String s, int i) { + s = s.replace("-", ""); + StringBuilder sb = new StringBuilder(); + int t = 0, rem = s.length() % i; + if (rem == 0) rem = i; + for (int j = 0; j < s.length(); ++j) { + sb.append(s.charAt(j)); + ++t; + if (t == rem) { + t = 0; + rem = i; + if (j != s.length() - 1) sb.append('-'); + } + } + return sb.toString(); + } +} + diff --git a/challenge-322/deadmarshal/java/Ch2.java b/challenge-322/deadmarshal/java/Ch2.java new file mode 100644 index 0000000000..427b527a79 --- /dev/null +++ b/challenge-322/deadmarshal/java/Ch2.java @@ -0,0 +1,24 @@ +import java.util.Arrays; + +public class Ch2 { + public static void main(String[] args) { + System.out.println(Arrays.toString(rank_array(new int[]{55, 22, 44, 33}))); + System.out.println(Arrays.toString(rank_array(new int[]{10, 10, 10}))); + System.out.println(Arrays.toString(rank_array(new int[]{5, 1, 1, 4, 3}))); + } + + private static int[] rank_array(int[] arr) { + int n = arr.length; + int[] t = arr.clone(); + Arrays.sort(t); + int m = 0; + for (int i = 0; i < n; ++i) { + if ((i == 0) || (t[i] != t[i - 1])) t[m++] = t[i]; + } + int[] ans = new int[n]; + for (int i = 0; i < n; ++i) + ans[i] = Arrays.binarySearch(t, 0, m, arr[i]) + 1; + return ans; + } +} + -- cgit