diff options
| author | 冯昶 <fengchang@novel-supertv.com> | 2024-03-04 16:39:31 +0800 |
|---|---|---|
| committer | 冯昶 <fengchang@novel-supertv.com> | 2024-03-04 16:39:31 +0800 |
| commit | 8edd4508d3af07ed272eec6ceeca1a9789b5e68a (patch) | |
| tree | 2db742aea75a7a3005575c04a7e44da6d5c88a1f /challenge-258/bruce-gray/java | |
| parent | d64db60d9dcf17d59060a03f5b1fbc5e82fc1953 (diff) | |
| parent | ad381c1123e47114d3d98f1749f9f354eebafcdd (diff) | |
| download | perlweeklychallenge-club-8edd4508d3af07ed272eec6ceeca1a9789b5e68a.tar.gz perlweeklychallenge-club-8edd4508d3af07ed272eec6ceeca1a9789b5e68a.tar.bz2 perlweeklychallenge-club-8edd4508d3af07ed272eec6ceeca1a9789b5e68a.zip | |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'challenge-258/bruce-gray/java')
| -rw-r--r-- | challenge-258/bruce-gray/java/ch-1.java | 34 | ||||
| -rw-r--r-- | challenge-258/bruce-gray/java/ch-2.java | 41 |
2 files changed, 75 insertions, 0 deletions
diff --git a/challenge-258/bruce-gray/java/ch-1.java b/challenge-258/bruce-gray/java/ch-1.java new file mode 100644 index 0000000000..b60b8fcdf4 --- /dev/null +++ b/challenge-258/bruce-gray/java/ch-1.java @@ -0,0 +1,34 @@ +// java java/ch-1.java +import java.util.List; +public class ch_1 { + + + static long task1 ( List<Integer> ns ) { + return ns.stream() + .filter(n -> n.toString().length() % 2 == 0) + .count(); + } + + + // Test harness + static int test_number = 1; + static void plan ( Integer count ) { System.out.printf("1..%d\n", count); } + static boolean is ( long got, long expected, String desc ) { + boolean ret = got == expected; + System.out.printf("%s %d - %s\n", (ret ? "ok" : "not ok"), test_number++, desc); + return ret; + } + public static void main(String[] args) { + record Testcase ( int expected, List<Integer> inputs ) {} + + List<Testcase> tst = List.of( + new Testcase( 3, List.of( 10, 1, 111, 24, 1000 ) ), + new Testcase( 0, List.of( 111, 1, 11111 ) ), + new Testcase( 1, List.of( 2, 8, 1024, 256 ) ) + ); + plan(tst.size()); + for (Testcase t : tst) { + is( task1(t.inputs), t.expected, t.inputs.toString() ); + } + } +} diff --git a/challenge-258/bruce-gray/java/ch-2.java b/challenge-258/bruce-gray/java/ch-2.java new file mode 100644 index 0000000000..f7f9036d89 --- /dev/null +++ b/challenge-258/bruce-gray/java/ch-2.java @@ -0,0 +1,41 @@ +// java java/ch-2.java +import java.util.List; +import java.util.stream.IntStream; +import java.util.stream.Collectors; +public class ch_2 { + + + static int task2 ( Integer k, List<Integer> ns ) { + Integer[] ints = ns.toArray(new Integer[0]); + + return IntStream.range(0, ints.length) + .filter(i -> Integer.bitCount(i) == k) + .mapToObj(i -> ints[i]) + .collect(Collectors.summingInt(Integer::intValue)); + } + + + + // Test harness + static int test_number = 1; + static void plan ( Integer count ) { System.out.printf("1..%d\n", count); } + static boolean is ( Integer got, Integer expected, String desc ) { + boolean ret = got == expected; + System.out.printf("%s %d - %s\n", (ret ? "ok" : "not ok"), test_number++, desc); + return ret; + } + public static void main(String[] args) { + record Testcase ( Integer expected, Integer in_k, List<Integer> in_nums ) {} + + List<Testcase> tst = List.of( + new Testcase( 17, 1, List.of(2, 5, 9, 11, 3) ), + new Testcase( 11, 2, List.of(2, 5, 9, 11, 3) ), + new Testcase( 2, 0, List.of(2, 5, 9, 11, 3) ) + ); + plan(tst.size()); + for (Testcase t : tst) { + is( task2(t.in_k, t.in_nums), t.expected, "k=" + t.in_k); + } + + } +} |
