Dada una string, cuyo carácter seguido de su frecuencia, cree la string apropiada.
Ejemplos:
Entrada : test_str = ‘g7f2g3i2s2b3e4’
Salida : gggggggffgggiissbbbeeee
Explicación : g es seguida por 7 y repetida 7 veces.Entrada : test_str = ‘g1f1g1’
Salida : gfg
Explicación : f es seguida por 1 y repetida 1 vez.
Método #1: Usando zip() + join()
Esta es una de las formas en que se puede realizar esta tarea. En esto, la tarea de unir los caracteres apropiados se realiza usando join() y zip() se usa para convertir diferentes strings de caracteres y frecuencias. El inconveniente es que la frecuencia de carácter está restringida a un número de 1 dígito en este.
Python3
# Python3 code to demonstrate working of # Expand Character Frequency String # Using join() + zip() import re # initializing string test_str = 'g7f2g3i2s2b3e4s5t6' # printing original string print("The original string is : " + str(test_str)) # using zip() to pair up numbers and characters # separately res = "".join(a *int(b) for a, b in zip(test_str[0::2], test_str[1::2])) # printing result print("The expanded string : " + str(res))
The original string is : g7f2g3i2s2b3e4s5t6 The expanded string : gggggggffgggiissbbbeeeessssstttttt
Método #2: Usando regex() + join()
Esta es otra forma más en la que se puede realizar esta tarea. En esta tarea de emparejar números y caracteres a diferentes strings se realiza usando regex() y la ventaja es que puede tomar números con dígitos mayores a 2.
Python3
# Python3 code to demonstrate working of # Expand Character Frequency String # Using regex() + join() import re # initializing string test_str = 'g7f2g3i2s2b3e4s5t10' # printing original string print("The original string is : " + str(test_str)) # using findall to pair up numbers and characters # separately, can include longer digit strings res = ''.join(chr * int(num or 1) for chr, num in re.findall(r'(\w)(\d+)?', test_str)) # printing result print("The expanded string : " + str(res))
The original string is : g7f2g3i2s2b3e4s5t10 The expanded string : gggggggffgggiissbbbeeeessssstttttttttt
Método #3: Sin usar ningún método incorporado
Python3
# Python3 code to demonstrate working of # Expand Character Frequency String # initializing string test_str = 'g7f2g3i2s2b3e4s5t6' # printing original string print("The original string is : " + str(test_str)) character=[] frequency=[] for i in range(0,len(test_str)): if(i%2==0): character.append(test_str[i]) else: frequency.append(int(test_str[i])) res="" for i in range(0,len(character)): res+=character[i]*frequency[i] # printing result print("The expanded string : " + str(res))
The original string is : g7f2g3i2s2b3e4s5t6 The expanded string : gggggggffgggiissbbbeeeessssstttttt
Publicación traducida automáticamente
Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA