From 4b7cf462c5ea159866becd61eb82ce9aa2f77320 Mon Sep 17 00:00:00 2001 From: Ali Date: Wed, 30 Jul 2025 11:05:56 +0330 Subject: TWC331 --- challenge-331/deadmarshal/java/Ch2.java | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 challenge-331/deadmarshal/java/Ch2.java (limited to 'challenge-331/deadmarshal/java/Ch2.java') diff --git a/challenge-331/deadmarshal/java/Ch2.java b/challenge-331/deadmarshal/java/Ch2.java new file mode 100644 index 0000000000..db7b5c136b --- /dev/null +++ b/challenge-331/deadmarshal/java/Ch2.java @@ -0,0 +1,27 @@ +public class Ch2 { + public static void main(String[] args) { + System.out.println(buddy_strings("fuck", "fcuk")); + System.out.println(buddy_strings("love", "love")); + System.out.println(buddy_strings("fodo", "food")); + System.out.println(buddy_strings("feed", "feed")); + } + + private static boolean buddy_strings(String s1, String s2) { + if (s1.length() != s2.length()) return false; + int diff = 0; + int[] count1 = new int[26]; + int[] count2 = new int[26]; + for (int i = 0; i < s1.length(); ++i) { + int a = s1.charAt(i), b = s2.charAt(i); + ++count1[a - 'a']; + ++count2[b - 'a']; + if (a != b) ++diff; + } + boolean f = false; + for (int i = 0; i < 26; ++i) { + if (count1[i] != count2[i]) return false; + if (count1[i] > 1) f = true; + } + return diff == 2 || (diff == 0 && f); + } +} -- cgit