sábado, 8 de agosto de 2026

Hugo, Paco y Luis siguen en el viaje por carretera con su tío Donaldo. Luis se acaba de despertar y Hugo y Paco deciden empezar un nuevo juego para incluir a Luis. Ahora van a contar el número de placas seguidas que tienen la primera letra igual. Cada vez que pasan los vehículos anotan las placas y luego cuentan la cantidad de cada una... en Python

Hugo, Paco y Luis siguen en el viaje por carretera con su tío Donaldo. Luis se acaba de despertar y Hugo y Paco deciden empezar un nuevo juego para incluir a Luis. Ahora van a contar el número de placas seguidas que tienen la primera letra igual. Cada vez que pasan los vehículos anotan las placas y luego cuentan la cantidad de cada una.

Realizar un programa que reciba una lista con las primeras letras de las placas vistas por Hugo (SEPARADAS POR UNA COMA CADA LETRA), Paco y Luis e imprima en una fila las letras que fueron viendo, separadas por un espacio, y en otra fila las veces seguidas que vieron dicha letra, separados por un espacio. Ejemplo:

ENTRADA:
A,A,a,c,g,c,B,A,F,f,b,f,E,b,f,b

SALIDA:
A C G C B A F B F E B F B
3 1 1 1 1 1 2 1 1 1 1 1 1

Código del ejercicio:

nota = input()
nota = nota.upper()
nota = nota.replace(",","")
nota = list(nota)
nota.append("S")
c = 0
d = nota[0]
letra = []
numero = []
for i in range(len(nota)):
    if nota[i] == d:
        c = c + 1
        d = nota[i]
    else:
        letra.append(d)
        numero.append(str(c))
        d = nota[i]
        c = 1
print(" ".join(letra))
print(" ".join(numero))

Definición de los códigos del ejercicio:

input() --> permite obtener texto escrito por teclado.
if --> use if para especificar un bloque de código que se ejecutará, si una condición especificada es verdadera.
else --> use else para especificar un bloque de código a ejecutar, si la misma condición es falsa.
for --> el bucle for se utiliza para recorrer los elementos de un objeto iterable (lista, tupla, conjunto, diccionario, …) y ejecutar un bloque de código.
in --> el operador in devuelve True si el valor se encuentra en una secuencia; False en caso contrario.
range --> es un tipo que se utiliza para representar una secuencia inmutable de números. Uno de sus principales usos es junto a la sentencia for, para definir un bucle sobre el que se itera un número determinado de veces.
upper() --> devuelve una cadena donde todos los caracteres están en mayúsculas.
replace() --> reemplaza una frase específica con otra frase específica.
list() --> crea un objeto de lista. Un objeto de lista es una colección ordenada y modificable.
append() --> agrega un elemento al final de la lista.
lista = [1,2,3,4] --> son variables que almacenan arrays, internamente cada posición puede ser un tipo de datos distinto.
str() --> convierte el valor especificado en una cadena.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
join() --> toma todos los elementos en un iterable y los une en una sola cadena.
print() --> imprime un mensaje en la pantalla.

Explicación del Código:

El programa recibe las placas de los vehículos y cuenta cuántas placas consecutivas tienen la misma primera letra.

1. Ingresar las placas

  • nota = input() → Permite ingresar las placas.
  • nota = nota.upper() → Convierte todas las letras a mayúsculas.
  • nota = nota.replace(",", "") → Elimina las comas utilizadas para separar las placas.
  • nota = list(nota) → Convierte el texto en una lista de caracteres.

2. Preparar el recorrido

  • nota.append("S") → Agrega una letra al final para poder procesar correctamente el último grupo.
  • c = 0 → Inicializa el contador de placas.
  • d = nota[0] → Guarda la primera letra que se va a comparar.
  • letra = [] → Crea una lista para guardar las letras.
  • numero = [] → Crea una lista para guardar las cantidades.

3. Recorrer las placas

  • for i in range(len(nota)): → Recorre todos los elementos de la lista.
  • if nota[i] == d: → Comprueba si la letra actual es igual a la letra que se está contando.
  • c = c + 1 → Aumenta en uno la cantidad de placas que tienen esa letra.
  • d = nota[i] → Mantiene guardada la letra actual.

4. Cuando cambia la letra

  • else: → Se ejecuta cuando aparece una letra diferente.
  • letra.append(d) → Guarda la letra que terminó de contar.
  • numero.append(str(c)) → Guarda la cantidad de placas consecutivas.
  • d = nota[i] → Comienza a trabajar con la nueva letra.
  • c = 1 → Reinicia el contador en 1.

5. Mostrar el resultado

  • print(" ".join(letra)) → Muestra las letras encontradas separadas por espacios.
  • print(" ".join(numero)) → Muestra la cantidad correspondiente a cada letra.

Ejemplo

Si se ingresan las placas:

AAA,BB,C,DDD

El resultado será:

A B C D
3 2 1 3

Esto significa que hay 3 placas con A seguidas, 2 con B, 1 con C y 3 con D.

Código completo en Python

nota = input()
nota = nota.upper()
nota = nota.replace(",", "")
nota = list(nota)
nota.append("S")
c = 0
d = nota[0]
letra = []
numero = []

for i in range(len(nota)):
    if nota[i] == d:
        c = c + 1
        d = nota[i]
    else:
        letra.append(d)
        numero.append(str(c))
        d = nota[i]
        c = 1

print(" ".join(letra))
print(" ".join(numero))

No hay comentarios.:

Publicar un comentario

Encontrar la paridad de un número dado en Python

Código del ejercicio: def encontrarParidad ( x ):     x ^= x >> 16     x ^= x >> 8     x ^= x >> 4     x ^= x...

Copyright © Ejercicios de programación. Todos los derechos reservados. ❤️