Algoritmos

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.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

1 semana hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

2 semanas hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

2 semanas hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

2 semanas hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

2 semanas hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

2 semanas hace

Esta web usa cookies.