py_pattern_tracker · Python
▶ Aprender py_pattern_tracker (Python) paso a paso · explicación de py_pattern_tracker
Código línea a línea
Tres columnas: el código, el trozo del subject o del main que obliga a escribir esa línea, y el por qué.
py_pattern_tracker.py
| Código | Subject | Por qué |
|---|---|---|
def pattern_tracker(text: str) -> int: | def pattern_tracker(text: str) -> int: | Firma del subject. |
count = 0 | counts the number of valid consecutive digit pairs | Contador. |
for a, b in zip(text, text[1:]): | two adjacent digits | zip(text, text[1:]) da cada carácter con el siguiente: todas las parejas adyacentes sin manejar índices. |
if a.isdigit() and b.isdigit() and int(b) - int(a) == 1: | the second digit is exactly one greater than the first. A 9 followed by a 0 is NOT a valid pair. | Los dos son dígitos y el segundo es el primero más uno. Con int el 9→0 da -9, no 1: queda excluido solo. |
count += 1 | Pareja válida. | |
return count | pattern_tracker("1a2b3c4") => 0 | Las letras entre medias rompen la adyacencia: zip nunca empareja 1 con 2 si hay una a entre ellos. |