Problema Libro Aho, Hopcroft y Ullman: Example 2.2
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 r
Restricciones
Restricciones
- Las únicas variables que puede usar la función
own_print
sona
yr
, tal como se declaran en la plantilla anterior. Los fuentes de la claseStack
hacen parte del archivo adjunto a este mensaje. - Adicionalmente el orden de complejidad de
own_print(s)
debe serO(n)
, en donden
es la longitud del parámetros
.
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).
Pruebas
Pruebas
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:
abc
ab
a
Error
c
q
Error
q
Note que hay 5 lineas en blanco, específicamente, las lineas 4, 8, 9, 10 y 13.