diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2022-09-03 21:38:53 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2022-09-03 21:38:53 +0100 |
| commit | 0ea24ad3f2e62e9531e778ee31b582d73efe4b77 (patch) | |
| tree | 72f6f4d626a3cdbea98d71ad60d9c08a8b83b3e7 /challenge-180/mohammad-anwar/java/theweeklychallenge | |
| parent | 198cd4bdf0fc36df387cf2a636fadbfb74f9a169 (diff) | |
| download | perlweeklychallenge-club-0ea24ad3f2e62e9531e778ee31b582d73efe4b77.tar.gz perlweeklychallenge-club-0ea24ad3f2e62e9531e778ee31b582d73efe4b77.tar.bz2 perlweeklychallenge-club-0ea24ad3f2e62e9531e778ee31b582d73efe4b77.zip | |
- Added solutions to week 180.
Diffstat (limited to 'challenge-180/mohammad-anwar/java/theweeklychallenge')
| -rw-r--r-- | challenge-180/mohammad-anwar/java/theweeklychallenge/FirstUniqueCharacter.java | 72 | ||||
| -rw-r--r-- | challenge-180/mohammad-anwar/java/theweeklychallenge/TrimList.java | 63 |
2 files changed, 135 insertions, 0 deletions
diff --git a/challenge-180/mohammad-anwar/java/theweeklychallenge/FirstUniqueCharacter.java b/challenge-180/mohammad-anwar/java/theweeklychallenge/FirstUniqueCharacter.java new file mode 100644 index 0000000000..34bf56bc6a --- /dev/null +++ b/challenge-180/mohammad-anwar/java/theweeklychallenge/FirstUniqueCharacter.java @@ -0,0 +1,72 @@ +package theweeklychallenge; + +/* + +Week 180: + + https://theweeklychallenge.org/blog/perl-weekly-challenge-180 + +Task #1: First Unique Character + + You are given a string, $s. + + Write a script to find out the first unique character in the + given string and print its index (0-based). + +Compile and Run: + + mohammad-anwar/java$ javac theweeklychallenge/FirstUniqueCharacter.java + mohammad-anwar/java$ java theweeklychallenge.FirstUniqueCharacter + +*/ + +import java.util.Map; +import java.util.TreeMap; +import java.util.ArrayList; +import junit.framework.TestCase; +import static junit.framework.Assert.*; + +public class FirstUniqueCharacter extends TestCase { + + public static void main(String[] args) { + junit.textui.TestRunner.run( + theweeklychallenge.FirstUniqueCharacter.class); + } + + public void testDammAlgorithm() { + assertEquals(firstUniqueCharacter("Perl Weekly Challenge"), 0); + assertEquals(firstUniqueCharacter("Long Live Perl"), 1); + } + + public static int firstUniqueCharacter(String str) { + char[] chars = str.toCharArray(); + ArrayList<Character> chars_array = new ArrayList<Character>(); + Map<Character, Integer> chars_map = new TreeMap<Character, Integer>(); + int j = 0; + for (int i = 0; i < chars.length; i++) { + char c = chars[i]; + if (Character.compare(c, ' ') == 0) { + continue; + } + c = Character.toLowerCase(c); + if (chars_map.containsKey(c)) { + chars_map.put(c, chars_map.get(c) + 1); + } + else { + chars_array.add(c); + chars_map.put(c, 1); + j++; + } + } + + int k = 0; + for (char c : chars_array) { + if (chars_map.get(c) == 1) { + break; + } + k++; + } + + return k; + } +} diff --git a/challenge-180/mohammad-anwar/java/theweeklychallenge/TrimList.java b/challenge-180/mohammad-anwar/java/theweeklychallenge/TrimList.java new file mode 100644 index 0000000000..711ab8ec74 --- /dev/null +++ b/challenge-180/mohammad-anwar/java/theweeklychallenge/TrimList.java @@ -0,0 +1,63 @@ +package theweeklychallenge; + +/* + +Week 180: + + https://theweeklychallenge.org/blog/perl-weekly-challenge-180 + +Task #2: Trim List + + You are given list of numbers, @n and an integer $i. + + Write a script to trim the given list where element is less than + or equal to the given integer. + +Compile and Run: + + mohammad-anwar/java$ javac theweeklychallenge/TrimList.java + mohammad-anwar/java$ java theweeklychallenge.TrimList + +*/ + +import java.util.Map; +import java.util.TreeMap; +import java.util.Arrays; +import java.util.ArrayList; +import junit.framework.TestCase; +import static junit.framework.Assert.*; + +public class TrimList extends TestCase { + + public static void main(String[] args) { + junit.textui.TestRunner.run( + theweeklychallenge.TrimList.class); + } + + public void testTrimListExample1() { + int i = 3; + Integer[] n = {1, 4, 2, 3, 5}; + Integer[] got = trimList(i, n); + Integer[] exp = {4, 5}; + assertEquals(Arrays.toString(exp), Arrays.toString(got)); + } + + public void testTrimListExample2() { + int i = 4; + Integer[] n = {9, 0, 6, 2, 3, 8, 5}; + Integer[] got = trimList(i, n); + Integer[] exp = {9, 6, 8, 5}; + assertEquals(Arrays.toString(exp), Arrays.toString(got)); + } + + public static Integer[] trimList(int i, Integer[] n) { + ArrayList<Integer> list = new ArrayList<Integer>(); + for (int j : n) { + if (j > i) { + list.add(j); + } + } + + return list.toArray(new Integer[list.size()]); + } +} |
