Post date: Mar 14, 2013 5:45:21 PM
Implementar una función own_print usando la siguiente plantilla:
def own_print(s): """ Given a string s made from the characters in a,b,...,y,z,A,B,...,Y,Z,#,@ return the string resulting from s by interpreting the characters '#' and '@' as described in the Aho, Hopcroft, and Ullman book, example 2.2. """ r,a = '',Stack() ... return rown_print son a y r, tal como se declaran en la plantilla anterior. Los fuentes de la clase Stack hacen parte del archivo adjunto a este mensaje.own_print(s) debe ser O(n), en donde n es la longitud del parámetro s.A modo de sugerencia para comenzar la implementación, creen un nuevo archivo en el directorio de Stack.test.py y con el mismo encabezado (from ... import ...) de este último. Este nuevo archivo, además del encabezado, debe contener únicamente la definición de la función own_print y, posiblemente, algunas pruebas (ver más adelante).
Pueden utilizar las siguientes pruebas para validar la implementación hecha:
print(own_print('abc'))print(own_print('abc#'))print(own_print('abc##'))print(own_print('abc###'))try: print(own_print('abc####'))except ValueError: print('Error')print(own_print('a#b#c'))print(own_print('a#b#c#q'))print(own_print(''))print(own_print('@'))print(own_print('@ayt@'))try: print(own_print('@ayt@#a'))except ValueError: print('Error')print(own_print('@ay#t@q'))print(own_print('@@@@@@@'))El resultado debe ser el siguiente:
abcabaErrorcqErrorqNote que hay 5 lineas en blanco, específicamente, las lineas 4, 8, 9, 10 y 13.