commit e64ed476bd0ead0c4ef9ff54ed52196681f56bb2
parent 5054b0ba34e29840791aef08a8fc6c5f378b822f
Author: amin <dev@aminmesbah.com>
Date: Sun, 2 Dec 2018 06:33:07 +0000
Add solution to 02-2
FossilOrigin-Name: 5f3ce2a6ac5f07eb34541594f543608d44ac15d43b28cd9c25c060dd9fd3b9f4
Diffstat:
M | main.zig | | | 45 | +++++++++++++++++++++++++++++++++++++++++++++ |
1 file changed, 45 insertions(+), 0 deletions(-)
diff --git a/main.zig b/main.zig
@@ -13,6 +13,51 @@ pub fn main() !void {
debug.warn("01-1: {}\n", total_sum(input01));
debug.warn("01-2: {}\n", first_visited_twice(input01));
debug.warn("02-1: {}\n", checksum(input_02));
+ common_chars(input_02);
+}
+
+fn common_chars(ids: [] const [] const u8) void {
+ for (ids) |id, i| {
+ outer: for (ids[i + 1..]) |id2, j| {
+ if (i != j) {
+ debug.assert(id.len == id2.len);
+ var distance: u32 = 0;
+ for (id) |char, k| {
+ if (char != id2[k]) {
+ distance += 1;
+ }
+ if (distance > 1) {
+ continue :outer;
+ }
+ }
+ if (distance == 1) {
+ //debug.warn("{}\n", id);
+ //debug.warn("{}\n", id2);
+ for (id) |char, x| {
+ if (char == id2[x]) {
+ debug.warn("{c}", char);
+ }
+ }
+ debug.warn("\n");
+
+ break;
+ }
+ }
+ }
+ }
+}
+
+test "common chars" {
+ const ids = [] const [] const u8 {
+ "abcde",
+ "fghij",
+ "klmno",
+ "pqrst",
+ "fguij",
+ "axcye",
+ "wvxyz",
+ };
+ common_chars(ids);
}
fn checksum(input: [] const [] const u8) u32{