Python y Codewars: baches en el camino

Introducción

Hay un ejercicio que aunque no es tan difícil sí que es entretenido. Se trata de contar los baches en un camino y diagnosticar si nuestro auto (suponiendo que tenemos uno) podrá llegar sano y salvo a casa.

El problema dice algo así:

Suponiendo que tenemos un auto y el amortiguador de éste sólo soporta pasar sobre 15 baches antes de romperse, escribir una función que reciba el camino como una cadena (ya veremos más adelante cómo es) y devuelva “Woohoo!” si llegaremos sanos a casa o “Car Dead” en caso contrario.

El camino es representado por _ o n, es decir, guiones bajos y letras ene. Si es un guión bajo entonces el camino está “plano” pero si encontramos una n significa que hay un bache.

Un ejemplo del camino podría ser: __n__ en donde hay 1 bache. En cambio, este: ___nn_nnn_n_n tiene 7 baches y este: _________ no tiene baches.

Solución

Muy fácil, contamos cuántas veces aparece n dentro de la cadena que recibimos. Si el conteo es menor o igual a 15, regresamos “Woohoo!” y en caso de que no, “Car Dead”. Así:

def bumps(road):
    return "Woohoo!" if road.count("n") <= 15 else "Car Dead"

Está un poco resumido, pero podría expandirse así:

def bumps(road):
    conteo = road.count("n")
    if conteo <= 15:
        return "Woohoo!"
    else:
        return "Car Dead"

Y para probar podemos hacer esto:

print(bumps("___n_n_n______________n"))# Woohoo!, pues sólo hay 4
print(bumps("n__nnnn__nn___nnnnnnnnnn________"))# Car Dead, porque hay 17
print(bumps("____nnnn___________nnnnn_______n_n_n_n_"))# Wohoo! porque hay 13

Con estos resultados:

Fue un ejercicio que me gustó mucho.

Python y Codewars: baches en el camino

Por parzibyte Tiempo de lectura: 1 min
0