浏览代码

Solve day 4

Taddeus Kroes 6 年之前
父节点
当前提交
21c1753f84
共有 1 个文件被更改,包括 27 次插入0 次删除
  1. 27 0
      2019/04_password.py

+ 27 - 0
2019/04_password.py

@@ -0,0 +1,27 @@
+#!/usr/bin/env python3
+def get_groups(pw):
+    prev = 10
+    group = 1
+    groups = []
+    while pw:
+        d = pw % 10
+        if d > prev:
+            return []
+        if d == prev:
+            group += 1
+        else:
+            groups.append(group)
+            group = 1
+        prev = d
+        pw //= 10
+    groups.append(group)
+    return groups
+
+pmin, pmax = 240920, 789857
+relaxed = strict = 0
+for n in range(pmin, pmax + 1):
+    groups = list(get_groups(n))
+    relaxed += int(any(group >= 2 for group in groups))
+    strict += int(2 in groups)
+print(relaxed)
+print(strict)