Está en la página 1de 2

N1 Problema 4 | N2 Problema 2 procesatexto Certamen Jurisdiccional OIA 2023

Procesando un texto
Contribución de Agustín Santiago Gutiérrez

Descripción del problema o minúscula o mezclado. Si no


Ricardo quiere crear un procesador aparece no hace nada. Por ejemplo
de texto que sea mucho mejor que los aguaAgUSagusyAGUS se transforma en
existentes. aguaagusyAGUS.

Un procesador de texto es, para Ri- AGREGA-α: Agrega la cadena α dada


cardo, una función que toma un texto y en el comando, al final del texto.
una lista de comandos, y va aplicando Por ejemplo el comando AGREGA-xYzz
sucesivamente los comandos indicados transformaría abc en abcxYzz
en orden, para obtener un texto final como DUP-i-j: Duplica la subcadena que
resultado. empieza en el caracter i y termina en
Más precisamente, un texto es una ca- el j, ahi mismo donde aparece. Por
dena de inicialmente N caracteres forma- ejemplo el comando DUP-3-7 transfor-
da solo por letras minúsculas y/o mayús- maría xxabcefyy en xxabcefabcefyy.
culas del alfabeto inglés. Los caracteres INVERTIR-i-j: Invierte la subcadena
en mayúsculas y minúsculas se conside- que empieza en el caracter i y
ran diferentes, es decir por ejemplo c no termina en el j, ahi mismo don-
es equivalente a C. de aparece. Por ejemplo el co-
Los T comandos que hay que aplicar mando INVERTIR-3-7 transformaría
al texto inicial se describen cada uno xxabcefyy en xxfecbayy.
mediante una cadena de caracteres. Las BORRA-i: Borra el i-ésimo caracter.
cadenas posibles para describir coman- CHAU-α: Borra la primera aparicion
dos son: del texto α en la cadena, que tiene
INTERCAMBIA: Las mayúsculas del tex- que coincidir exacto en mayúscu-
to se vuelven minúsculas, y vicever- las y minúsculas. Si no aparece no
sa. hace nada. Por ejemplo el comando
BORRAULTI: Borra el ultimo caracter. Si CHAU-xY transformaría xyaxYbxY en
el texto era vacío, no hace nada. xyabxY.

BORRAPRI: Borra el primer caracter. Si El resultado que se devuelve es el texto


el texto era vacío, no hace nada. final luego de aplicar los T comandos
indicados.
DUP: Duplica la cadena. Por ejem-
plo si era coPIA, se transforma en En esta primera versión, Ricardo quiere
coPIAcoPIA. que el procesador de texto tenga una
memoria de hasta 1000 caracteres. Si en
ROTA: Rota la cadena, llevando el cualquier momento (ya sea en el resultado
primer caracter al final. Por ejemplo final, o en el texto que resulta de aplicar
si era aBCD, se transforma en BCDa. Si los primeros k comandos, para algún 1 ≤
el texto era vacío, no hace nada. k ≤ T) se forma un texto de estrictamente
INVERTIR: Invierte toda la cadena. Por más de 1000 caracteres, se debe retornar
ejemplo abcdef cambia a fedcba. la cadena “MemoryLimitExceeded” (sin las
CHAUAGUS: Borra la primera aparicion comillas).
del texto AGUS en la cadena, ya
sea que aparezca en mayúscula
hoja 1 de 2
N1 Problema 4 | N2 Problema 2 procesatexto Certamen Jurisdiccional OIA 2023

Descripción de la función Ejemplo


Debes implementar la función Si se invoca al evaluador con la siguien-
procesatexto(texto, comandos) te entrada:
Sus parámetros son: CACEROLAcasaLimonXYZagusiagus 10
texto: Una cadena con el texto inicial INVERTIR
que será procesado. CHAUAGUS
INVERTIR
comandos: Un arreglo de T cadenas, CHAUAGUS
que indican en orden los comandos BORRA-24
que se deben aplicar al texto. BORRAULTI
La función debe retornar una cadena, INVERTIR
con el texto resultante luego de aplicar los BORRAULTI
INTERCAMBIA
T comandos.
INVERTIR
Evaluador local
Para un programa correcto, la salida
El evaluador lee de la entrada estándar
será:
la cadena texto y el entero T. Luego lee
T cadenas de texto, los elementos del acerolaCASAlIMONxyzIAG
arreglo comandos.
Escribe a la salida estándar la
cadena retornada por la llamada Subtareas
procesatexto(texto, comandos). 1. T = 1, comando INTERCAMBIA (5 puntos)
2. T = 1, comando BORRAULTI (5 puntos)
Restricciones 3. T = 1, comando BORRAPRI (5 puntos)
1 ≤ N ≤ 100 4. T = 1, comando DUP (5 puntos)
1 ≤ T ≤ 100 5. T = 1, comando ROTA (5 puntos)
Cada comando es una cadena de 6. T = 1, comando INVERTIR (5 puntos)
hasta 50 caracteres 7. T = 1, comando CHAUAGUS (5 puntos)
Se garantiza que en los comandos 8. T = 1, comando AGREGA-α (5 puntos)
DUP-i-j e INVERTIR-i-j, se tiene i ≤ j y 9. T = 1, comando DUP-i-j (5 puntos)
tanto i como j son índices válidos de 10. T = 1, comando INVERTIR-i-j (5 puntos)
un caracter en el texto al momento 11. T = 1, comando BORRA-i (5 puntos)
de ejecutar el comando
12. T = 1, comando CHAU-α (5 puntos)
Se garantiza que en los comandos 13. T = 1 (20 puntos)
BORRA-i, i es un índice válido de un
14. Sin más restricción (20 puntos)
caracter en el texto al momento de
ejecutar el comando
Tanto el texto inicial como las cade-
nas α en los comandos explicados
contienen únicamente letras mayús-
culas y minúsculas del alfabeto in-
glés

hoja 2 de 2

También podría gustarte