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,
- Convierta una string en un diccionario que tenga caracteres como claves y sus frecuencias como valor usando el método counter() .
- Ahora separe la lista de caracteres que tienen una frecuencia de 1 y una frecuencia de más de 1.
- 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