Dada una string y un número k, encuentre el k-ésimo carácter no repetido en la string. Considere una string de entrada grande con lacs de caracteres y un juego de caracteres pequeño. ¿Cómo encontrar el carácter haciendo solo un recorrido de la string de entrada? Ejemplos:
Input : str = geeksforgeeks, k = 3 Output : r First non-repeating character is f, second is o and third is r. Input : str = geeksforgeeks, k = 2 Output : o Input : str = geeksforgeeks, k = 4 Output : Less than k non-repeating characters in input.
Este problema tiene una solución existente, consulte el enlace. Podemos resolver este problema rápidamente en python usando List Comprehension y OrderedDict .
Implementación:
Python3
# Function to find k'th non repeating character # in string from collections import OrderedDict def kthRepeating(input,k): # OrderedDict returns a dictionary data # structure having characters of input # string as keys in the same order they # were inserted and 0 as their default value dict=OrderedDict.fromkeys(input,0) # now traverse input string to calculate # frequency of each character for ch in input: dict[ch]+=1 # now extract list of all keys whose value # is 1 from dict Ordered Dictionary nonRepeatDict = [key for (key,value) in dict.items() if value==1] # now return (k-1)th character from above list if len(nonRepeatDict) < k: return 'Less than k non-repeating characters in input.' else: return nonRepeatDict[k-1] # Driver function if __name__ == "__main__": input = "geeksforgeeks" k = 3 print (kthRepeating(input, k))
r
Este artículo es una contribución de Shashank Mishra (Gullu) . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA