Está en la página 1de 2

Input:

abababab
12352
a 1
001010011101010
b 2
00101001 11010100

ab 3
ba 4
aba 5
abab 6 [ETX][STX] ab )È

Max bits Salida en


para el Tamaño binaria
diccionario del convertida
diccionario Diccionario

Iteración Actual Previo Nuevo


Input:
[ETX][STX]ab)ð Bits a tomar por iteración: 3
1 a - -

2 b a ab

a 1 00101001 11010100 3 ab b ba
b 2
001 1 a 4 ? ab ab?

010 2 ab
ab 3
ba 4 011 3 abab

101 5 abab?
Como pueden ver, se está buscando la posición 5 y esta es la que está por ser procesada en esta iteración.

Para entender el porqué de esta situación, veamos la tabla de cifrado.


Inmediatamente después que "aba"(con la posición 5) entre al diccionario, la siguiente cadena que fue escrita es nuevamente "aba";
o sea, el siguiente valor en nuestra salida, luego de ingresar la posición 5, fue 5.

Por esto, el caso especial ocurre cuando el substring empieza y termina con el mismo caracter ("aba" es una forma de <char><string><char>)

Así que, para manejar esta excepción, únicamente debemos tomar el substring previo ("ab") y concatenar el primer caracter de él mismo
(en lugar del primer caracter del actual), "ab" + "a" = "aba".

Iteración Actual Previo Nuevo


Input:
[ETX][STX]ab)ð Bits a tomar por iteración: 3
1 a - -

2 b a ab

a 1 00101001 11010100 3 ab b ba
b 2
001 1 a 4 ? ab ab?

ab 3 010 2 ab
4 aba ab aba
ba 4
aba 5 011 3 abab
abab 6 5 b aba abab
101 5 abababa

010 2 abababab
no hay 3 bits
0
termina el proceso

También podría gustarte