Dada una string de entrada y un patrón, compruebe si los caracteres de la string de entrada siguen el mismo orden determinado por los caracteres presentes en el patrón. Suponga que no habrá caracteres duplicados en el patrón.
Ejemplos:
Input: string = "engineers rock" pattern = "er"; Output: true Explanation: All 'e' in the input string are before all 'r'. Input: string = "engineers rock" pattern = "gsr"; Output: false Explanation: There are one 'r' before 's' in the input string.
Tenemos una solución existente para este problema, consulte Verifique si la string sigue el orden de los caracteres definidos por un patrón o no | conjunto 1 . Aquí resolvemos este problema rápidamente en python usando OrderedDict() . El enfoque es muy simple,
- Cree un OrderedDict de string de entrada que contenga caracteres de strings de entrada solo como clave .
- Ahora establezca un puntero al comienzo de la string de patrón.
- Ahora recorra OrderedDict generado y haga coincidir las claves con el carácter individual de la string de patrón, si la clave y el carácter coinciden entre sí, incremente el puntero en 1.
- Si el puntero del patrón llega al final, significa que la string sigue el orden de los caracteres definidos por un patrón; de lo contrario, no.
# Function to check if string follows order of # characters defined by a pattern from collections import OrderedDict def checkOrder(input, pattern): # create empty OrderedDict # output will be like {'a': None,'b': None, 'c': None} dict = OrderedDict.fromkeys(input) # traverse generated OrderedDict parallel with # pattern string to check if order of characters # are same or not ptrlen = 0 for key,value in dict.items(): if (key == pattern[ptrlen]): ptrlen = ptrlen + 1 # check if we have traverse complete # pattern string if (ptrlen == (len(pattern))): return 'true' # if we come out from for loop that means # order was mismatched return 'false' # Driver program if __name__ == "__main__": input = 'engineers rock' pattern = 'er' print (checkOrder(input,pattern))
Producción:
true
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.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
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