Python - Contar caracteres

 
Vista:

Contar caracteres

Publicado por No puedo (3 intervenciones) el 12/05/2022 17:46:49
Entrada

La entrada consta de una secuencia de caracteres separados por comas

E,E,e,E,E,d,E,E,D,c,C,E,E,B,E,E,a,E,A,E,g,E,G,E,f,E

Salida

La salida consta de dos líneas: la primera es la secuencia de caracteres sin repeticiones, en mayúsculas y separados por espacios; la segunda es el número de veces que se repitió cada carácter consecutivamente, también separados por espacios.

Línea de salida 1: E D E D C E B E A E A E G E G E F E
Línea de salida 2: 5 1 2 1 2 2 1 2 1 1 1 1 1 1 1 1 1 1
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-2
Responder
Imágen de perfil de 7aamin
Val: 11
Ha disminuido su posición en 6 puestos en Python (en relación al último mes)
Gráfica de Python

Contar caracteres

Publicado por 7aamin (117 intervenciones) el 12/05/2022 23:57:08
Intenta algo.. muestra lo que has intentado y se te ayuda..!! aqui no es lugar donde vienes a que te hagan la tarea!! si no te gusta la programacion no te enganes! si no aprendes tarde o temprano vas a perder! Ese ejercicio es tan basico! intenta al menos usar el cerebro!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-3
Comentar

Contar caracteres

Publicado por No puedo (3 intervenciones) el 13/05/2022 15:20:31
[code]import re
#Ingreso de caracteres
caracter = str(input(""))

lista0=caracter.upper()

lista1=re.sub(",","",lista0)

#Arreglo temporal
listaTemp=[]

listaTemp.append(lista0[0])

cont = 0

cuenta=[]

x=0

for n in lista1:

if n == listaTemp[x]:
cont += 1

else:
x += 1
cuenta.append(cont)
cont = 0
listaTemp.append(n)
cont += 1

print(*listaTemp)
print(*cuenta)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Contar caracteres

Publicado por tincopasan (1082 intervenciones) el 15/05/2022 04:18:21
como pusiste algo de código te muestro como lo haría, lo único que no comparto tu lógica así que aunque muy simple implemento otra para que se entienda, se puede resumir, pero eso te lo dejo por si lo querés hacer.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#-*- coding: utf  -8 -*-
import re
cadena =(input(">>"))
cadena=re.sub(",","",cadena).upper()
 
def contador(cadena):
    letras=[]
    numeros=[]
    cant_rep = 1
    letras.append(cadena[0])
    for letra, letra_siguiente in zip(cadena, cadena[1:]):
        if letra == letra_siguiente:
            cant_rep+=1
        else:
            numeros.append(str(cant_rep))
            letras.append(letra_siguiente)
            cant_rep=1
    numeros.append(str(cant_rep))
    return " ".join(letras)," ".join(numeros)
 
letras,numeros=contador(cadena)
print(f"""Línea de salida1: {letras}
Línea de salida2: {numeros}""")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
Imágen de perfil de 7aamin
Val: 11
Ha disminuido su posición en 6 puestos en Python (en relación al último mes)
Gráfica de Python

Contar caracteres

Publicado por 7aamin (117 intervenciones) el 13/05/2022 21:49:43
Es muy facil! estos ejercicios sirven para que aprendas a desarrollar tu cerebro en programacion..!! Lo puedes resolver asi:
1
2
3
4
5
6
7
8
9
10
11
def CharCounter(string:str) -> str:
    st, groups = string.replace(",", "").upper(), list()
    bruteList = [x for x in st]
    arrList = sorted(list(set(bruteList)))
    for char in arrList: groups.append(str(len([x for x in bruteList if char == x])))
    yield " ".join(arrList)
    yield " ".join(groups)
 
gen = CharCounter(input("Ingrese los caracteres:\n"))
print("Linea 1:", next(gen))
print("Linea 2:", next(gen))

Resultado:
1
2
3
4
Ingrese los caracteres:
E,E,e,E,E,d,E,E,D,c,C,E,E,B,E,E,a,E,A,E,g,E,G,E,f,E
Linea 1: A B C D E F G
Linea 2: 2 1 2 2 16 1 2

Igualmente tu profesor o profesora de python se dara cuenta que es una tarea que alguien te ha hecho porque se esta usando python avanzado para hacerlo!! Suerte y practica mas!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-2
Comentar

Contar caracteres

Publicado por santiago garcia (1 intervención) el 13/05/2022 21:52:15
Tampoco es asi, porque deberia contar caracter por caracter independiente.
en la primera linea la salida deberia dar E y abajo 5
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Contar caracteres

Publicado por No puedo (3 intervenciones) el 16/05/2022 20:55:20
Gracias, esta es otra forma de hacerlo, pero la salida no es la esperada.

La salida consta de dos líneas: la primera es la secuencia de caracteres sin repeticiones, en mayúsculas y separados por espacios; la segunda es el número de veces que se repitió cada carácter consecutivamente, también separados por espacios.

Línea de salida 1: E D E D C E B E A E A E G E G E F E
Línea de salida 2: 5 1 2 1 2 2 1 2 1 1 1 1 1 1 1 1 1 1

No era totalizar el número de la misma letra, sino el número de veces que se repite una letra antes de que aparezca otra.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de 7aamin
Val: 11
Ha disminuido su posición en 6 puestos en Python (en relación al último mes)
Gráfica de Python

Contar caracteres

Publicado por 7aamin (117 intervenciones) el 16/05/2022 21:56:08
jajaja al parecer todo el salon se ha puesto de acuerdo para venir a obtener la respuesta de la Tarea en LaWebDelProgramador!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-2
Comentar

Contar caracteres

Publicado por santiago garcia (1 intervención) el 16/05/2022 22:02:09
Jajaja no es asi, es que el mismo ejercicio dice la salida, asi la puedes c onvertir en mayuscula, y con una fincion llamada groupby y un for pudes hacer el resto.
r=input().split(",")
mayuscula=list(map(lambda x:x.upper(),r))

Yo no soy del salón compa. Para adelante
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de 7aamin
Val: 11
Ha disminuido su posición en 6 puestos en Python (en relación al último mes)
Gráfica de Python

Contar caracteres

Publicado por 7aamin (117 intervenciones) el 16/05/2022 22:46:44
Porque incluso en grupos de Facebook estan preguntando la respuesta de ese mismo ejercicio pero con diferentes enunciados!! y tampoco les responden jajaja porque saben que estan pidiendo que les hagan la tarea!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar