Genere dos strings de salida según la aparición del carácter en la string de entrada en Python

Dada una string de entrada str[], genera dos strings de salida. Uno de los cuales consiste en aquellos caracteres que ocurren solo una vez en la string de entrada y el segundo que consiste en caracteres que ocurren varias veces. Las strings de salida deben estar ordenadas. 

Ejemplos:

Input : str = "geeksforgeeks"
Output : String with characters occurring once:
"for".
String with characters occurring multiple times:
"egks"

Input : str = "geekspractice"
Output : String with characters occurring once:
"agikprst"
String with characters occurring multiple times:
"ce"

Tenemos una solución existente para este problema, consulte Generar dos strings de salida dependiendo de la aparición del carácter en el enlace de la string de entrada. Podemos resolver este problema rápidamente en python usando el método Counter (iterable) . El enfoque es simple,

  1. Convierta una string en un diccionario que tenga caracteres como claves y sus frecuencias como valor usando el método counter() .
  2. Ahora separe la lista de caracteres que tienen una frecuencia de 1 y una frecuencia de más de 1.
  3. Ordene los caracteres en ambas listas para obtener strings de salida.

Implementación:

Python3

# Function Generate two output strings depending upon
# occurrence of character in input string
 
from collections import Counter
 
def generateStrings(input):
     
    # convert string into dictionary
    # having characters as keys and frequency as value
    freqDict = Counter(input)
 
    # separate out characters having frequency 1 and more than 1
    freq1 = [ key for (key,count) in freqDict.items() if count==1]
    freqMore1 = [ key for (key,count) in freqDict.items() if count>1]
 
    # sort lists and concatenate characters
    # with out space to print resultant strings
    freq1.sort()
    freqMore1.sort()
 
    # print output strings
    print ('String with characters occurring once:')
    print (''.join(freq1))
    print ('String with characters occurring multiple times:')
    print (''.join(freqMore1))
 
# Driver program
if __name__ == "__main__":
    input = "geeksforgeeks"
    generateStrings(input)
Producción

String with characters occurring once:
for
String with characters occurring multiple times:
egks

Publicación traducida automáticamente

Artículo escrito por Shashank Mishra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *