diff options
Diffstat (limited to 'challenge-331/deadmarshal/java')
| -rw-r--r-- | challenge-331/deadmarshal/java/Ch1.java | 12 | ||||
| -rw-r--r-- | challenge-331/deadmarshal/java/Ch2.java | 27 |
2 files changed, 39 insertions, 0 deletions
diff --git a/challenge-331/deadmarshal/java/Ch1.java b/challenge-331/deadmarshal/java/Ch1.java new file mode 100644 index 0000000000..23d9fe58f7 --- /dev/null +++ b/challenge-331/deadmarshal/java/Ch1.java @@ -0,0 +1,12 @@ +public class Ch1 { + public static void main(String[] args) { + System.out.println(last_word("The Weekly Challenge")); + System.out.println(last_word(" Hello World ")); + System.out.println(last_word("Let's begin the fun")); + } + + private static int last_word(String s) { + String[] arr = s.trim().split(" "); + return arr[arr.length - 1].length(); + } +} 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); + } +} |
