exact string matching animation in )ava1 christian charras i thierry

8

Upload: vungoc

Post on 05-Jan-2017

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Exact string matching animation in )ava1 Christian Charras I Thierry

����������� ������� � ������������� ������� ��������� ��� ��� �!��"

#�$�%�&('*)+&-,/.0#�$�,/%�%�,/'�1324$�&(56%�%*798 56:;%�<>=

?A@CBEDF?AG�HJI+KLG�MNIPOQKNRTS/UV@(W6XYIPKNZ[G�MNO]\_^`R S6RaBbI+^`R*WAcbG�WJSdfe @Ng`g[D d MhR*iQOjR*K e OQI+ijI+kPOQRl@(W6XYIPKNZ[G�MNOm\n^`R!goMLGpMhOmqCMNOm\n^`R�qbgnI;rsOjIpt-iQOQWuk+^`O]qFMNO]\_^uR+c

vJGPrs^`iQMuwRaS6R�qxg;rsOjR*WJrsRyqzR*M{S6Ryqb|}R�rL~`W`O]\_^uR�q�xW`Oj�nR*KLqCOQMuwR S6RaBbI+^`R*W

�y�6�*�P�4��I+W;Mfg;G�OQW;MFt d OQkPWJGpW���R�S6R��/�Jv`KLG�WJrsR

R�t(Z[G�OQi-���P�n�;�/�;�p�A�n�+���(�_�J���;���;���(�6�A�+�P�6�n�������; ��J¡n¢6£P¤;¥`�p����¦;�/�*§J¨+�`¡P¦`�P�b��©;�

ª�«/¬L­�®s¯;°*­�±x²[³�´nµ(³L¶C³�·p¸a¹�·�¹�·+º¼»l¹*¸CºV½P·¾º¼·�¿P¹sÀ�¹�Ám½Pµb³LÂn¹*ÃL¸f¶C¸hµÄºÅ·+Æ�»l¹*¸CÃLÇ+º¼·+ÆȹyÉÊÆp½*˵(ºV¸hÇn»Ì¶TÍÏÎ*Ð-Ñ4Ò�Ç+ºV¶ ¶FÓP¶C¸F³�»Ô´nµÄ½�À+ºVÕn³L¶l¹�ÁYµC¹�»Ì³LÖ ½+µC×�¸C½Ø¹�·+º¼»l¹y¸C³aº¼·�¹�À�³�µ(Ó¾¶C¸hµC¹*ºVÆPÇp¸(ËÁm½Pµ(Ö�¹�µ(ÕfÖ�¹sÓl¹�·�Óf¶C¸Nµ(º¼·+ÆÌ»�¹*¸CÃLÇ+ºÅ·+Æf¹*ÉVÆ�½Pµ(ºV¸hÇn»0Ö�Ç+ºVÃLÇaÙ+¶F³L¶ ÃLÇn¹�µC¹yÃL¸C³�µ(¶�ÃL½+»l´n¹�µ(ºV¶C½P·+¶sÑÚ É¼µ(³�¹*ÕnÓ�Û�Ü!¶F¸hµ(º¼·+ÆØ»l¹y¸CÃÝÇ+º¼·+Æ4¹*ÉVÆ�½Pµ(ºV¸hÇn»f¶{Çn¹sÀ�³!Þn³L³�·�¹�·+º¼»l¹*¸C³LÕ[ÖzºÊ¸NÇ4¸hÇ+ºV¶f¶CÓP¶F¸C³�»�Ñßà¸�ºV¶�¹fÆp½P½+Õ�¸C½+½�É`¸C½aÙn·+Õn³�µ(¶C¸N¹�·+Õ�¹*ÉVÉA¸NÇ+³L¶C³{¹*ÉVÆ�½Pµ(ºV¸hÇn»Ì¶�Ñ

á�âPã�äfåu®*æ/¬�ç{è}Âo¹yÃL¸ ¶F¸hµ(º¼·+Æa»l¹*¸FÃÝÇ+º¼·+Æ;é;¹p·+ºÅ»�¹*¸CºV½P·`én¿P¹sÀ*¹

ê ë ��� ���¾ì�í����z�����

îïG�MNMNR�KNW�ZÈGpMLrL~`OjW`k!O]qxG��nR*KNðØOQZ4ñJI+KhMLG�W6M�òJR�imS¾OjW�rsI+Z4ñu^`MNR*K{qhrsOQR�WJrsRlGPqxZ�^�ró~�XYKhI+ZôG�MN~`RstI+KhR*MNO]r*Gpi��;OQR*õbñJI+OjW6M G+qbXYKNI+ZôG�ñuKLG+r�MNOmr�Gpi�I+W`Rnö @(MxI;r*r�^`KLq÷XYIPKfOQW�qFMLG�WJrsR�OjW�MNR��6M{ñ`KNI;r�R�qNqCOQW`ku�qFñJR*Ryró~�KhR�rsI+kPW`OQMhOQIPW��nOQW6XYIPKNZ[G�MNOQIPW�KNR*MhKNOjR*�PGpi(�oGpWJS4r�I+Z4ñ`^uMLGpMhOQIPWJGpi`HuOQI+ijI+kPðnöï@(M�Gpi]qFI!ñuKNI��6O]S6R�qrL~JGpijiQR*W`kPOQW`k�MN~`R�I+KNR�MNOmr�Gpibñ`KhI+H`ijR*Z[qsöøv`I+KØG�imGpKhk+R�W6^`Z�HJR*KlIpXlñuKNI+kPKLG�Z[qs��MN~`R[MhR�ró~uW`Om\n^`R�q^JqCR�S�MNI4ZÈGpMLrL~�G�ñJG�MNMNR�KNW�r�I+WJqCMNOQMh^`MNR�G�~`OQkP~�ñJR*KLr�R*W6MÝGpkPR�IpX�MN~`R�OQKbMNIPMLG�iïõ�IPKNùAöl@ÄM{OmqbMN~uR*WOQZØñ�IPKNMÝGpW;M�MNITS6R�qCOQk+W[�nR*Khð�RsúÈrsOQR*W;M�Gpijk+I+KhOQMh~`Z[qsö �xWJS6R�KLqFMÝGpWJS;OQW`k�Mh~`RfR*�;OmqCMNOQWuk�Gpijk+IPKNOQMh~`Z[qOmq�~`R*ijñ6XY^`i�MNIûGPró~`OjR*�nR4Mh~`Omq!kPInGpi-öü@ÄMØqFR�R*Z4R�S�MNIý^�q��nR*KhðýOQW;MNR�KNR�qCMNOQWuk�MNIþIpÿAR*KÈG MhInI+ifMhI�;OmqF^�GpiQO � RfR�GPqFOjiQðØqFMNKhOQW`k�Z[G�MLrL~`OQW`kaG�iQk+IPKNOjMN~`Z[q�ö

gnMNKhOQW`k�ZÈGpMLrL~`OjW`k!O]q�G�qFñJR�rsO]Gpi�r�G+qFRlI�X�ñJGpMhMNR*KhW[Z[GpMÝró~`OjW`klõb~`R*KhR�Mh~`RlñJGpMhMNR*KhW[OmqbqFR�Mb^`ñH;ð�GÌò�W`OQMhR{qFR�\n^`R*WJr�RbIpX rL~JGpKÝG+rsMhR*KLq�öï@(M�rsI+WJqCOmqCMLqïOQW�òJWJS6OjW`klI+W`Ro�_IPK�Z4IPKNRbkPR*W`R*KÝGpiQijðn�nG�iQi`Mh~`RI;r*rs^uKNKNR�WJrsR�qbIpX�G�õ�I+KÝS���I�X�ijR*W`kPMN~�� OQW G�MNR*�;M��4IpX�iQR�W`k+Mh~��>ö e IPMN~���G�WJS��4G�KNR�H`^`OjiQMI��nR*K�Mh~`RaqNG�Z4RlGpijñ`~JG�H�R�M{ö

|�~`RfHJR�qCM�õbG*ð�MhI!^`WJS;R*KLqCMLGpW�SÈ~uIpõüGaqFMhKNOQWuk!Z[G�MLrL~`OQW`kÌGpiQkPI+KhOQMN~uZ õ�I+KNùuqzO]qzMhI!OQZÈGpk+OjW`RMN~�GpMbMN~uR*KNRfO]qbG!õbOQWJS;IpõüI+W�MN~`R MNR*�;M*ö�|�~`O]q�õbOQWJS;Ipõü~JGPq�MN~`RaqNG�Z4RfijR*W`k+Mh~[G+qbMN~uRfõ�IPKLS���ö@(MbOmq�òJKLqCMfG�iQOjk+W`R�S4õbOjMN~�Mh~`RliQRsXYMbR�WJS¾I�X�MN~`RaMNR*�;M��J�`MN~`R*W[Mh~`R�qCMNKNOjW`k�Z[GpMÝró~`OjW`k�G�iQkPI+KNOjMN~`ZqNr�GpWJq�O X�Mh~`RlqCð6Z�HJI+imq�IpX�MN~uRxõbOjWJS6I�õ9Z[GpMÝró~�Mh~`RlqCð6Z�HJI+imq�IpX�MN~uRfõ�IPKLS�DYMN~`O]qzqCñJR�rsO ò�r÷õ�I+KNùOmqlr*G�iQijR�S�G�W��� � ������� mcLö d XYMhR*KfR�GPró~øGpMhMNR*Z4ñuM*�/Mh~`R�õbOQWJS;IpõÔD(G�WJS MN~uR�õ�I+KÝS�c{OmqlqF~uO XYMNRyS MhIMN~uR�KNOQkP~6MlI��nR*K{MN~`R�MNR��6Mf^uW6MhOQi�OQMlk+InR�qfHJR*ðnIPWJS Mh~`R�R*WJS�IpX�MN~`R�MhR*�;M*ö d qFMhKNOQWuk4Z[GpMÝró~uOQW`kGpijk+IPKNOQMh~`Z�O]q}Mh~`R*WaGxqC^Jr*rsRyqNqFOjI+WlIpX�GpMNMhR*Z4ñ`MÝq/G�WJS�qF~`O¼XYMLq�ö>|�~uRbGpOjZ�IpX�GpW!R�ú[rsOjR*W;M/G�iQkPI+KNOjMN~`ZOmq�MNIaZ4OQW`OjZ4O � R�Mh~`Rfõ�I+KNùØS6IPW`RlS6^`KhOQW`kaR�G+rL~[G�MNMNR�Z4ñ`M�GpWJS4MhI!Z[G��6OjZ4O � R�Mh~`RfiQR�W`k+Mh~4IpX�Mh~`R

���������! #"�$&%' )(*�!+,(-$�.&�/(-0�0�12�&34+�+,"5$&.�6�798:1;.���6<+�$�">=�6�?�.'@&ACB:DE"�$&FG(-.��IH:3�6�6�.�JLK6�B4"�F�6M�&N2"-DO.&��6PDQ$&6�B4?R�S#TVUXWZY

Page 2: Exact string matching animation in )ava1 Christian Charras I Thierry

������������ ���������������������� �

qC~`O XYMÝqsöl|�I�G+rL~`OQR*�nRlMh~`Omq��/Z4InqCMxI�X�MN~`R�qCMNKNOjW`k4Z[G�MLrL~`OQWuk4G�iQk+IPKNOjMN~`Z[qbñ`KhR*ñ`KNI;r�R�qNqxMh~`R�õ�IPKLSHJRsXYIPKNRaMN~`RTqFR�G�KLrL~`OQW`k�ñu~JG+qCRnö d iQi�Mh~`R�S6O¼ÿAR*KNR*W;M{qFMhKNOjW`k�ZÈGpMLrL~`OjW`knq�GpiQkPI+KhOQMN~uZ[qxS;O ÿAR*KbHJI+Mh~OjW�Mh~`R!õ�Gyð[Mh~`R*ð[rsIPZ4ñ`^`MhRlMN~`RTGpMNMhR*Z4ñ`MÝqfDàXYKhI+Z iQRsXYM{MNI�KNOjk+~;M*�`XYKNIPZ KhOQkP~6M{MNI�iQRsXYM{I+KbXYKNIPZIPMN~`R�K{qFñJR�rsO¼òArfI+KLS;R*KLqLcbG�WJS¾OjW4MN~`Rlõ�GyðØMN~`R*ðÈrsI+Z4ñu^`MNRfMh~`RaqF~`O¼XYMLq�ö

!x^uZ4R*KNIP^Jq/qCI+ij^`MNOjI+WJq/MhIxMh~`R�qFMNKhOQW`kbZÈGpMLrL~`OjW`k�ñ`KNIPH`iQR*Z ~JG*�nRïHJR*R*WaS6R�qCOQk+WuR�S�D(qFR�R#" �%$;GpWJS"¼�+�&$�cLö�|�~uRxMCõ�IlZ4IoqFMïX-GpZØI+^Jq�GpKhRxMh~`R('ÌW;^`Mh~6tC��IPKNKhOmqÄtÄîïKLG�MNMbG�iQkPI+KNOjMN~`Z)"+*,$AGpW�S�MN~`R e I�ðnR*KFt��InIPKNR-" �,$(ö�|�~`R*KNRlR*�;OmqCMbMN~`R�W�G�i]GpKNkPR!W;^`Z�H�R�K�IpXzGpiQkPI+KhOQMN~uZ[q÷^�qFOQWuk��PGpKhOQIP^JqxZ4R*Mh~`I;S`q�öb@(MO]qxOQW;MNR�KNR�qCMNOQWuk�MhI¾~�Gy�nRTG4MNInI+i�MhI4^`WJS6R�KLqFMÝGpWJS�MN~uR*Z�öl|�~`R*KhR�R*�;OmqFM qFIPZ4R!kPR*W`R*KÝGpi¼t(ñ`^uKNñJInqCR�;OmqC^JGpijO � G�MNOjI+WþqFðuqFMhR*Z[qlD(qCR*R-" ��.,$�G�WJS/"+0,$YcLö�|�~`RyqFR�qFðuqFMhR*Z[qb~JG*�nR�HJR*R*WþS6R*�nR�iQI+ñuñ�RyS¾XYI+K2139OjWJS6I�õlö�gn^�ró~þG[qFðuqFMhR*Z��JKN^`WuW`OQW`k4XYIPK41539OQWJS;Ipõ GpWJSþS6R�S;Omr*G�MNR�S�MhI[qFMhKNOQWuk¾ZÈGpMLrL~`OjW`k`�~�G+q!HJR*R*WûS;R*�nR*iQIPñJR�S H;ð e GpR � Gyt76�GpMNRyq!GpW�S v`^`R�W6MhR�q8" �9$-ö goI+Z4RØqFñJR�rsO]GpijO � R�S�qCð`qCMNR*ZÈq�G�KNRGPr*rsR�qhqFOjH`iQR�S6OjKNR�r�MNiQð�MN~`KhI+^`kP~ýMN~uR:3þI+KhimS;39O]S6R:3þR*H D(qCR*R<"V��$-�=" �,$-�="¼�*�%$�G�WJS>"¼��0?$�cÝö d ijiïIpXMh~`R�qCR�qFðuqFMNR�Z[q÷R�WJGpH`ijR�I+W`ijð�MhI4�6O � ^JG�iQO � R�Mh~`R��nR*Khð�r�imG+qhqFO]r*Gpi�qCMNKhOQW`k4ZÈGpMLrL~`OjW`k4G�iQkPI+KNOjMN~`ZÈqG�WJS¾^�qF^JG�iQiQð�MN~uR*ð4S;I�W`IPMbñJR*KNZ4OjM�MNI�ùnR*R*ñØMNKLGPrsRfI�XïMh~`Rl~`OmqCMNI+Khð�I�X�MN~uRlqFR�G�KLrL~[ñ`~JG+qCRnö=@{^`KqCð`qCMNR*Z IpÿAR*KÝq!MNI�Mh~`R4^JqCR*KLqlMN~`R4ñJIoqNqFOjH`OQijOQMCðþMNI¾XYIPiQijIpõEMh~`R[KN^`WuW`OQW`k�IpXÌG¾i]GpKNkPR�ró~`IPOmrsR�IpXqCMNKhOQW`k�Z[GpMÝró~uOQW`kaGpijk+IPKNOQMh~`Z[q��nR*Khð�RyG+qFOjiQð�MN~`KhI+^`kP~�Mh~`R23 IPKNimSA39OmS6R(3 R*H ö|�~`O]qxG�KNMhOmrsijR�O]q�I+KhknGpWuO � R�S�G+q÷XYIPiQijIpõ{q��÷goR�rsMNOjI+W���S6R�qNr�KNOQHJR�S4~`I�õ MN~uR!qCð`qCMNR*ZÔI+ñJR*KLG�MNR�q

G�WJS goR�rsMNOjI+W-0�S6R�qNr�KNOQHJR�S4~`I�õ�Mh~`R�qCð`qCMNR*ZÔOmq�õbKNOjMNMhR*W�GpWJS[~`I�õ�MNIØGpW`OjZ[GpMhRlG�W`R*õ qCMNKNOjW`kZÈGpMLrL~`OjW`k�G�iQk+IPKNOjMN~`Z�ö

B C �-D D�������z����� D����

|�~uR�^�qFR*K{r*G�W�ró~`InIoqFRaGpZØI+W`k�Mh~`Ra�_�aqFMhKNOjW`k�Z[GpMÝró~uOQW`kTGpiQkPI+KhOQMN~uZ[q�G�iQKNRyG+S6ð�OQZ4ñuiQR*Z�R*W;MNR�S/öv`IPK�R�G+rL~ûGpijk+IPKNOQMh~`Z[qlMN~`R*KhR4Omq�G�Hu^`MNMhI+WüD(qCR*R�v>OQkP^`KNR���cLöø@-X{IPW`R�rsiQO]róùuqfI+W G�H`^`MNMhI+W���GõbOjWJS6I�õEG�ñ`ñJR�GpKÝq�D(qFR�R�v>OQkP^`KNR��ncLö�@(W�MN~�GpMlõbOQWJS;Ipõ Mh~`R�^�qFR*Klr�GpW�MN~uR*W R�W6MhR*KfG4MhR*�6MÌGpWJSG�õ�I+KÝS D-S6RsX-Gp^uiQM{MNR*�;MbOmq E� ;�P�� FE� ;�FE��%EJ�%E6�J���J�6 n�FEn���; %E�GpW�S�S6RsX-Gp^uiQMbõ�IPKLS�O]qGEJ 6�FEJ�?EJ�?EJcLö|�~uR�MNR��6M�G�WJS MN~`R�õ�IPKLS G�iQñ`~�GpHJR*M4O]q�KhR�qFMhKNOmr�MNR�S MhIýMN~uR¾ijI�õ�R*K�r*GPqFR�iQR*MhMNR*KÝqsö d H`^`MNMhI+WR�WJGpH`ijR�qbMN~`R*W�MN~`Ra^JqFR�KxMhI[qFMÝGpKNM{MN~uR�qFRyGpKLrL~�G�WJS�GpWuI+MN~uR*KxHu^`MNMhI+W�MNIÈqFMNIPñ�OQM{G�MlGpW;ð[MNOQZØRnö|�~uR�qFRyGpKLrL~ûñ`~JGPqFR�O]q!MN~`R�W qC~`I�õbW9G�MNMNR�Z4ñ`M�H;ðýG�MNMNR�Z4ñ`M*��XYIPK�IPW`R�GpMhMNR*Z4ñuM!MN~uR�MNR��6MaOmqS;OmqFñuimG*ðnR�S!G�WJS�MN~`R�õ�I+KÝS/�nõb~`OmrL~�G�iQiJrL~JG�KLG+r�MNR*KÝqïGpKhRbZ[GpMhR*KNO]GpiQO � R�SxH;ðaGlS6I+M��_O]q>G�iQOjk+W`R�S!õbOjMN~Mh~`R{KNR*ijR*�PGpW;MïñJInqFOjMNOjI+W4OjW�Mh~`RxMhR*�;M*öï@(W�R�G+rL~ØGpMNMhR*Z4ñ`M�MN~uRfS6O¼ÿAR*KNR*W;M�ró~�GpKLGPrsMNR�K�rsI+ZØñJGpKhOmqFIPWJqG�KNRaqF~uIpõbW�OQW[MN~uRÌXYIPiQijIpõbOjW`k�õbG*ðA�

H Z[GpMÝró~`Ryq�GpKhRaqF~`I�õbW�H;ð[S6O]qFñ`i]G*ð6OjW`k!Mh~`Rlõ�I+KÝS¾ijR*MNMhR*K�OjW¾^uñ`ñJR*K{r*G+qCR�I

H Z4OmqCZ[GpMÝró~`RyqïGpKhR!qC~`I�õbW�H;ð[S6O]qFñ`i]Gyð;OQWuk�MN~`Rlõ�IPKLS4iQR�MNMNR�K�OQW[ijIpõ�R*K{r*GPqFRnöd W¾I;r�rs^`KNKhR*WJrsR IpX MN~`Rlõ�IPKLS[OQW4Mh~`RlMNR*�;M�O]qbqF~`I�õbW�H;ð[S6O]qFñ`i]G*ð6OjW`k!Mh~`RarsI+KhKNR�qCñ�IPWJS6OjW`k�MhR*�;MrL~JG�KLG+r�MNR*KÝq>OQW�^`ñuñ�R�K�r*G+qCRnö d MïMh~`R�R*W�S!IpX�Mh~`R{qFRyGpKLrL~!ñu~JG+qCRn�nMN~`R{qCð`qCMNR*Z k+OQ�nRyq}Mh~`RbW6^uZ�HJR*KI�X GpMhMNR*Z4ñuMLqfG�WJS MN~uR�W;^`Z�H�R�KxI�X ró~JG�KLGPrsMNR*KarsIPZ4ñJG�KNOmqCI+WJqfñJR*KCXYI+KNZØR�S�S6^`KhOQW`k[MN~uR4qCR�GpKÝró~ñu~JG+qCR4D(qCR*Rav>OQkP^`KNRÌ�_cLö

J C �-D � �¾ì-D2K

|�~uR[qFðuqFMhR*ZOmqfõbKNOjMNMhR*W OjWMLnG*�PG6ö�@ÄMlO]q�S;R�S6Omr�GpMNRyS Z[G�OQW`ijð�MhI�R*�uG+rsMaqCMNKNOjW`k�ZÈGpMLrL~`OjW`k[Gpi¼tkPI+KhOQMN~uZ[q�H`^`M�Omq4R�GPqFOQijð R*�;MNR�WJqFOjH`iQR�MNI G i]GpKNkPR X-G�Z4OQijðûIpX�G�iQkPI+KNOjMN~`ZÈqsö ��I+KhR*I��nR*K4OQMØOmqr�I+Z4ñ`ijR*MNR�iQð�qFMhKLGpOjk+~;MFXYIPKNõbG�KLS MhI�OjZ4ñ`iQR�Z�R*W;M{GpW;ðøqFMNKhOQW`k�Z[GpMÝró~uOQW`k[G�iQkPI+KNOjMN~`ZÈqÌñuKNI��6O]S6OQWukMh~JGpM{OQMbO]q�õbKNOjMNMNR�W4OQW�G�qFñJR�rsO¼òArfõbG*ðnö

Page 3: Exact string matching animation in )ava1 Christian Charras I Thierry

��� ���&���9� ������ � �F���?����8���?� � �?� � ��� ���� ��� �

v>OQkP^`KNR��P��|�~`Rl�;OmqC^JGpijO � G�MNOQIPW4H`^`MhMNIPW¾XYI+K{MN~uR e Kh^`MNRÌv�IPKLrsRaG�iQk+IPKNOjMN~`Z�ö

?JR*M�^Jq�òJKÝqFM�S6RyqNrsKhOQHJR4MN~uR�S;O ÿAR*KNR�W6MTqFMNKh^JrsMh^`KNR�ql^JqFRyS H;ðþMN~`R�qFðuqFMhR*Z�ö�|�~uR�S;O ÿAR*KNR�W6MH`^`MhMNIPWJq}XYI+K�R�GPró~aqFMhKNOjW`kxZÈGpMLrL~`OjW`kbG�iQk+IPKNOjMN~`Z[q�G�KNR�S6R�GpijM>H;ðlG{rsimGPqNq�r*GpijiQR�S��������;�+���_¦;�n�J¡+���õb~`O]ró~�OjW`~`R*KhOQMLG�WJrsR�k+KLG�ñ`~4O]qzqC~`I�õbW4v�OQk+^uKNR#0�D��������6�P���n¦;�n��¡P�J��Omq GpWØGpñ`ñ`ijR*M�õbOQMh~��}OjW`ñ`^`MÝqXYI+K#.���� �>0_cÝö

|�~`R�õbOQW�S6I�õ{q4S6OmqCñ`imG*ð;OQW`kþMN~uR�qFRyGpKLrL~9ñ`~JGPqFR�qØGpKNRþS;R�GpijM�H;ð9Gýr�imG+qhq�õb~`O]ró~ WJGpZ4R[O]q! ��¡FE6�J��"`�J�$#n��%A�*�`¥6¡'&(� õb~`OmrL~4OjW`~`R*KhOQMLG�WJrsRfkPKLG�ñ`~�O]qbqF~`I�õbW�v�OQk+^uKNR*)`öd iQilMh~`RûS6O¼ÿ/R�KNR*W;M�qFMNKhOQW`k9ZÈGpMLrL~`OjW`kûGpijk+IPKNOQMh~`Z[q[OQW`~`R�KNOQM[I�X[G rsimGPqNq�õb~`O]ró~üWJGpZØR O]q

! ��¡FE6�J��"�+ !-, õb~`OmrL~4OjW`~`R*KhOQMLG�WJrsRfkPKLG�ñ`~�O]q�k+OQ�nR�W�v�OQk+^uKNR*.;ö@(W ! �J¡?E;����"/+ !0, Mh~`RaS6O ÿAR*KhR*W6M�XYI+ijiQI�õbOQW`k�ZØR*MN~`I;SuqbGpKNRaS6RyrsimG�KNR�S/�

H ����¡'&��6�;����"��n���n� 1*�02;�fMN~uOmq�ZØR*MN~`I;SþS6O]qFñ`i]Gyðuq<� S6I+MÝq!H�R�iQI�õEMN~`R�ñJInqCOQMNOjI+W3�xOjW Mh~`RMhR*�6M�I

H54 ¢6�n�J�+�A��;� 1��>�76�26�bMh~`OmqfZ4R*Mh~`I;S�MNR�qCMLqs� GpWJSøS6OmqCñ`imG*ðuqÌMh~`R�õ�I+KÝSýrL~JGpKÝG+rsMhR*KlG+r�rsI+KÝS_tOjW`k+ijðn�6O¼XïMh~`R*KNR OmqbG�Z[GpMÝró~4HJR*MCõ�R*R*W[rL~JGpKÝG+rsMhR*KLq!��8�GpWJS ��9�I

H;: ¡+� 4 ¢6�n���P�A�<�6�=1��>�76�2;��Mh~`Omq!Z4R�MN~`I;S MhR�qFMÝqs��GpWJSûS6O]qFñ`i]G*ð`qlMN~`R[õ�IPKLSûrL~JGpKÝG+rsMhR*K�G+rótrsIPKLS6OjW`k+ijðn�6O¼XïMh~`R*KhRfOmqbG�Z4OmqCZ[GpMÝró~�HJR*MCõ�R*R*W�ró~�GpKLGPrsMNR�KLq � 8 G�WJS9� 9 I

H ����¡'& , �P�� P� 1���2n��MN~`O]qxZ4R*Mh~`I;S�S;OmqFñuimG*ð`q G�XY^`iQi Z[GpMÝró~[IpX�Mh~`R�õ�IPKLSþGpMfñJInqCOQMhOQI+W>�zOjWMh~`RlMNR*�;M�I

H ����¡'&u��¡�"��J�P�J�6�+¡P�/�?1�2;�4MN~`O]q�Z4R�MN~`I;S S6OmqCñ`imG*ðuq�Mh~`R�W6^uZ�HJR*KaIpXTGpMhMNR*Z4ñuMLq�GpWJS Mh~`RW;^`Z�H�R�KzI�X�rL~JGpKÝG+rsMhR*K{rsI+ZØñJGpKhOmqFIPWJqbGpMbMh~`RlR*WJS4IpX MN~`RaqFRyGpKLrL~[ñ`~JGPqFRnö

|�~`R{õ�I+KÝS ���+OQMÝqïiQR*W`kPMN~ ���_Mh~`R{MNR*�;M ��GpW�S�OQMÝq ijR*W`kPMN~ �¾G�KNR Gpiji/G�MNMhKNOQHu^`MNR�qïI�X�MN~uRfrsi]G+qhq�;��¡FE6�J��"�+ !-, ö

0

Page 4: Exact string matching animation in )ava1 Christian Charras I Thierry

������������ ���������������������� �

v>OQkP^`KNRa�;��|�~`RlõbOQWJS6I�õ0XYIPKbMN~`R e Kh^`MNRav`I+KÝrsRaGpiQkPI+KhOQMN~uZ GyXYMhR*K{G�Kh^`W�ö

�����(�;�P�

�����(�;�+���n¦6�n�J¡+�

�������6�P���_¦;�6�`¡P��� �������6�P���n¦;�6�`¡P��� �����(�;�P���n¦6�;�`¡P�(� �����(�;�+���n¦6�;�`¡+���

v>Ojk+^`KhR 0;��@(W`~`R*KhOQMLG�WJrsRfkPKLG�ñ`~�I�X�MN~`RlH`^uMNMNIPW�rsi]G+qhqsö

|�~`RÈGpW`OjZ[GpMhOQI+WøIpX G�qFMhKNOjW`k�Z[G�MLrL~`OQWuk[Gpijk+I+KhOQMh~`Z Omqf�nR*Khð�R�G+qCðýO X�MN~`RØH�R�k+OQWøIpX R�G+rL~G�MNMhR*Z4ñ`MbDh�p�J¡'&��;�6�J��"��n���6�`cÝ�*MN~`R rL~JGpKÝG+rsMhR*K�rsI+Z4ñ�GpKNO]qFIPWJqbD 4 ¢6�n���P�A��;�fI+K : ¡P� 4 ¢;�_�J�P�J��;�`cG�WJS�MN~uR�KNR*ñJI+KhMfIpX�G�XY^uiQi�I;r*rs^uKNKNR�WJrsR4Dh�p�J¡'& , �+�J P��c GpKNRTrsiQRyGpKNijð4OmS;R*W6MhO òJRyS¾G�WJSþqFR*ñJG�KLG�MNR�SXYKhI+Z G�W6ðØI+MN~uR*KxOjWJqFMhKN^Jr�MNOQIPW�ö

|�~;^JqbMN~`RfMhKLG�WJqFi]GpMNOjI+W�IpX MN~`R e KN^uMNRlv`I+KÝrsRlqCMNKNOjW`k�Z[GpMÝró~`OjW`kaGpijk+I+KhOQMh~`ZD(qCR*Rlv>Ojk+^`KhRa�_cO]q��nR*KNðØqFMhKLG�OQk+~;MFXYIPKNõ�GpKLSþD(qCR*Rav>OQkP^`KNR��+cÝö

d W�SøXYIPK4G�Z4IPKNR[rsIPZ4ñ`ijOmr*G�MNR�SþGpijk+I+KhOQMh~`Z G+q!XYI+K�MN~uR ��IPiQ^JqhqFO{G�iQk+IPKNOjMN~`Z " .%$bOQMaOmq�G+qqCOQZ4ñuiQRaD(qFR�R!v�OQk+^uKNRa��GpWJS-*_cÝö

� � ����� K�í�ì������ � D�� �!��

3þR[~JG*�nR4ñ`KhR�qFR*W;MNRySýG qCð`qCMNR*Z õb~`O]ró~ýO]q�GpH`ijR[MNIþGpWuOQZ[G�MNR4R*�uG+r�M�qFMhKNOjW`k ZÈGpMLrL~`OjW`k�GpiQkPIptKhOQMh~`Z[qsö d S6R*Z4IañJG+rLùPGpk+RlO]qbGy�PG�OQimG�H`iQRaG�MbMN~`RfXYI+ijiQI�õbOQWuk�G+S`S6KhR�qNq��

)

Page 5: Exact string matching animation in )ava1 Christian Charras I Thierry

��� ���&���9� ������ � �F���?����8���?� � �?� � ��� ���� ��� �

� �J�"A�

! �J¡FE6�J�"�%A�p�;¥`¡$&

! ��¡FE6�J��"`�J��#6��%J���;¥�¡'& ! �J¡?E;�J�"/+�¡P�n��%/�*�u¥�¡�&

! ��¡FE;����"`�J��#;��%J���`¥6¡'&��

v>Ojk+^`KhR*)`��@(W`~`R*KhOQMÝGpWJrsR k+KLG�ñ`~�I�X�MN~uR�õbOjWJS6I�õ rsimGPqNqsö

�6�;�J�6�o¥

! �J¡?E;����"���¡o¥��

����� ! �J¡?E;����"u���'#6� ! �J¡FE6�J�"/+`¡+�n�

� ���J¡ ! ��¡FE;����"�+ !0, ! �J¡?E;�J�"/�_¦������6�'+`¡��6�

����� qCMNKhOQW`k �����Z[G�MLrL~`OQWukGpijk+I+KhOQMh~`Z[q

v>Ojk+^`KhR .6��{KLG�ñ`~�OjW`~`R*KhOQMLG�WJrsRxXYIPKxMh~`RaqFMhKNOQWuk�Z[GpMÝró~`OjW`k�G�iQkPI+KNOjMN~`ZÈqsö

��� ��������������������! "�#���$�%��&! ' )(�*+(, - �(�*+.0/21 �(�*3 4 6587

9 �$�:�� �;$<=7' ?>$;@(�A�.,7B �C$C�/215$;�<=7DE�F �G$H3�I5J>@.LK$K��NMI �C�5�OP;�;�&NMQ5�OR/?5�C�C87 9 �S5+T�;�.0/2UWV�X�Y�V�X8�# �/47

ZZ

v>Ojk+^`KhRl�6� e KN^`MhRlv`I+KÝrsRaqFMNKhOQW`k�Z[G�MLrL~`OQW`kaG�iQk+IPKNOjMN~`Z OQW��{ö

.

Page 6: Exact string matching animation in )ava1 Christian Charras I Thierry

������������ ���������������������� �

).�������*LG� ��$�� ����Q����*�����#(�*�HE�������* ���(��$&��EH ��* ���(,7 ).�������*LG� ��$�� �������������*�H�&�*�� Y��$�������W.���Y��!7

����RG� �� 9 �(���G+�$GE�����?Y��$�����$�W.������*�H���������H2H�&�*�H#(����2Y��$�����$�W.���Y�� 1

���� G� ��2��� ����������8�#/ *�������D�����(�*�HW�������*R ��W( ��&���H ��* ��W(�1 �(�* 4 5879 �$� �� �;�<87 >�;�(�A�.,7' �C�C�/?1

������D���*�*�H�.���*��$*8�# �/475J;J<=7D��0 �G$H �S5+>�.LK�K�� !�"W����������*��� �C�5= 5�/$/ 5$C�C=7 9 �I5JT�;2.F/�������D�����*���� �# �/F7

Z������D "��W.����$�� ��W�W(#�F��/F7

ZZ

v�OQk+^uKNR!�o� e Kh^`MNRav`I+KÝrsRlqFMhKNOjW`k�ZÈGpMLrL~`OjW`kaGpiQkPI+KhOQMN~uZ OjW-LnGy�PG;ö

��� ���"�U�$WV������0���#�����+��� '�����$����& ' �(�*+(, B �(�*�.F/1 �(�* 4 58 6�� %����* "GE����* (��8 � M'& ����(���O ( H�&�*,M)&�����(��$O! *���0 9 *NM'& ����(���O 7

Y�+���,�"�U�$�V������F� &! ., �N ( H�&$*! -�#�F 9 *! K�(���/47

. �/��HE�$���#�F �( � � . �;$<=7�� %����*�;�<87GE����*�;�A10 7D��0 �G$H3�� 2>$;�(�AW.0/21

5�;��� �E��*!7D��F EG�H3�S5J> .PK�K GE����*J> �C�� M 5�O+K$K��NMI �CW� M 5�O$O+;$;P&NM � MQ5�O$O /25$C�C87 9 �I5+T$;�.32�2 GE����*LT�;L �CW� MQ5EO /21

UWV�X�Y�V�X8�# �/475�;�.,7

Z 9 �I5+T�(���/+GE����*�;� �C�.�A10 7 �C�;����0 9 *NMQ5EO!7�� �E��*�;W( H�&�*NMQ5�O 7

ZZ

v�OQk+^uKNRl�;�÷��IPiQ^JqhqFO qFMNKhOQW`k�ZÈGpMLrL~`OjW`k�G�iQk+IPKNOjMN~`Z OjW��{ö

Page 7: Exact string matching animation in )ava1 Christian Charras I Thierry

��� ���&���9� ������ � �F���?����8���?� � �?� � ��� ���� ��� �

�.����$��* G� ����� �� �Q����*������(�*�HW�������*R ��W( ��&���H%��*R ��W( 7 �.����$��* G� ����� �� �����$���$*�H�&$*�� Y��������$�W.��EY��87

���� G� �� 9 �(���G+��GW�����2Y��$�����$�W.�"���G%1���� 2H�&�*�H�(����2Y�����������.���Y��J1

���� G� ��2��� �������������/ *E���$��D�� ��(�*�HE�$�����* ��W(��$&��$H ��*R ���( 1 �(�* F 65= �� ����*! "GW����*! (��=7 �(�*P� M OJ;�(RH�D )(�*,M .�C#0�O!7 �(�*P(RH�&$*,M OP;@( H�D )(�*NM .�C#0�O 7 �(�* �#�F 9 *,M O+;�(RH�D3 �(�*,M .�C10)O!7(��J;�Y�+���,�"�U�$WV������0� �, ( H�&�* �#�F 9 * /F7. � ��HW�������F )(��J� . �;$<=7�� %����*�;�<87GE����*�;$A10 7D��0 �G�H �� ?>�;@(�AW.0/�1

�#���ED���*$*�H#.���*���*��� �/F75$;��� ����*!7DE�F EG�H3�S5+>�. K$K GE����*L> �CW� M 5�O+K$K ��!�"����$�����$*8�# �CW� MQ5EO! � MQ5EO /�/'5$C�C87 9 �I5JT$;@. 2�2 GE����*JT$; �CW� MQ5�OR/ 1

������D�����*����=�� �/F75�;�.,7

Z 9 �I5JT@(���/+GE����*�;� �C�.�A#007 �C�;����F 9 *NMQ5�O 7�� �E��*�;�( H�&�*,M 5�O 7

Z������D�"$�W.������� ��W�W(1�0��/F7

ZZ

v�OQk+^uKNR�*6�b��I+ij^JqNqCO�qFMNKhOQW`k�Z[G�MLrL~`OQW`kaG�iQk+IPKNOjMN~`Z OQW LnGy�PG;ö

Page 8: Exact string matching animation in )ava1 Christian Charras I Thierry

������������ ���������������������� �

©;���b�C¥������Ħ;�J�p§J¨��J¡+¦`�P�b��©;� � �6¦�� � 4 + , ��� � �u��"J� 6������<�G�WJS�r�GpW[HJR�rsIPWJqF^`ijMNR�S[G�M�;�;����� ��� &�&�&��F¥J�*���Ħn�A�p§`¨P�`¡P¦������Ä©n� ���  +�`�P�6�`�u� � �`� "A�06 � ö

3þR�~JG*�nR�qF~uIpõbWa~`I�õýOQM�Omq/RyG+qFOjiQðfñJIoqNqFOjH`iQR�MNI GpW`OjZ[GpMhR�W`R*õûqCMNKNOjW`k{Z[GpMÝró~`OjW`kbG�iQkPI+KNOjMN~`ZÈqñuKNI��6O]S6OQWukxMh~JGpMïMh~`R*ðlG�KNRbõbKhOQMNMhR*WlOQWTGxk+Oj�nR*WfXYI+KNZ ö>|�~uOmq�qFðuqFMNR�Z r�GpW�R�GPqFOQijðfHJR�R*�;MNR�WJS6R�SlMNIG�W`OQZÈGpMNR�IPMN~`R*K rsimGPqNq>I�X�G�iQkPI+KNOjMN~`ZÈqsö�@(MïqCR*R*Z[q�\n^`OQMhR�IPH6�;OQIP^Jq>MN~�GpM�G�W`OQZ[G�MNOjW`kfG�ñ`ñ`KhIp�;OQZÈGpMNRqCMNKhOQW`k�Z[GpMÝró~uOQW`k�G�iQk+IPKNOjMN~`Z[q�õ�I+^`i]SN^JqCMfW`R*RyS¾G�XYR*õ0R�ÿ/IPKNMÝqsö�goI+Z4RaqFIPKNM Gpijk+I+KhOQMh~`Z[q{GpWJSqCI+Z4R k+KLG�ñ`~þGpijk+IPKNOQMh~`Z[q�~JG*�nRlGpijKNR�GPS6ð4HJR*R*W GpW`OjZ[GpMhR�S�õbOQMh~[MN~`RaqNG�Z4Rfñ`KhOQWJr�OQñ`ijR�qsö

� D���Df�D���� Dl

"¼�9$lBlö d ö e G�R � G*t�6�GpMhR�q�G�WJS�?�ö @aö;v`^`R*W;MNR�q�ö d XYKLG�Z4R*õ�I+KNù�MhI�G�W`OQZ[G�MNR qFMhKNOQWuk�Gpijk+IPKNOQMh~`Z[q�ö ��������������������5���������O�- & �¼��.F*6D ._cL�Ê�)u��!;��)$)u�z��*?*P�6ö

" �,$lBlö�gJö e I�ðnR*K{GpW�S<L`ö}gJö ��InI+KNRoö d X-G+qCMlqFMhKNOjW`k4qCR�GpKÝró~uOQW`k[G�iQkPI+KNOjMN~`Z ö�"#�Z�2���%$&"(' ��F.6Dh��._cÝ� �y�+�)!u�+�P�;�z��*_�P�nö

"+0,$l�ýö+*!ö e KNI�õbW�ö�,JR*^�qs� d qFðuqFMhR*Z XYIPKaGpiQkPI+KhOQMN~uZ GpW`OjZ[GpMhOQI+WþG�WJS�Z�^`ijMNO¼t(�;OQR�õ0RyS6OQMhOQW`kuö@(W-�������5�-�/.�01�324�5� �< 76��8 /9#9:9<;=���?>���6@�5�A���CB(0D��E �3F�� ���G2�E �H2 ��������*F*6�+ö

" )?$!�{ö/��~�GpKNKÝG+qfG�WJS�|fö/?JRyrsKNI;\Jö#Iï�`GPrsMfqCMNKhOQW`k�Z[G�MLrL~`OQWuk�Gpijk+IPKNOQMh~`Z[q��/��*F*+�;öJLK#MON ��*�*��QP .�. D�D$D�� �� �� ��$(F ��A��$�� H#( � 9 � .SR �#���E���$��� . ��*��� )(�� .

ÍUTsÐVM�ÑXWï½�ɼÙ+¶C¶Fº]ÑYW ½PµCµ(³LÃL¸h·+³L¶F¶Ì¹p·+Õ�³�ZaÃLºV³�·+ÃLÓ�½*Á�¸hÇ+³T´n¹y¸C¸C³�µC·�»l¹*¸CÃLÇ+º¼·+Æ[¹*ÉVÆ�½Pµ(ºV¸hÇn»f¶sÑ\[/]�^�_�`�acbd _�a:e@f3ghb¼éji�T�kmÛ4l�N Û�Û�T�moÛ�T3n�é�noi�ipn�Ñ

ÍUqsÐ8r ÑsW�µ(½+ÃÝÇ+³�»f½+µ(³{¹�·+Õ�²9Ñ�KïÓP¸F¸C³�µLÑutjv�w�g%x�y zG_4`/{|g|}Ga�~ÝÑ(��Â�Ám½Pµ(Õ�J�·+ºVÀ�³�µ(¶FºÊ¸(Ó���µ(³L¶F¶�é�noi�iyÎ;ÑÍ ÜsÐ Ú Ñ�W��¹*¶C¶Cº¼¹VKï½p¶C¶CºJÕn³ Ú É¼»f³LºVÕ;¹nÑ��n»l¹�¹�N/¶C¸Nµ(º¼·+Æa»l¹*¸CÃLÇ+º¼·+ÆT¹yÉÊÆp½Pµ(ºV¸hÇn» ¹�·+º¼»l¹y¸CºV½P·`Ñ

JLK#MON ��*�*��QP .�. D�D$D�� ����� �� 9 .�������� .�R �E������ �� . H�(���G� �����,��H����� ��W(�,��).���� � ��*�.�GÍU�sÐ8r Ñ>ÒbÑX�b½+½+Õ;µ(ºVÃÝÇ�¹�·+Õ�KbÑ�Ò/¹�»l¹*¶F¶Cº¼¹nÑ���x�g1x\�@g1`�fG��g1fG`�v�~�x�]s����y z3_�`�{�g|}Ga�~�{|]-��x��oxpÑþ¿�½+Çn·²øºVÉV³LÓ��C�+½+·+¶�é�noi�i4�nÑJLK#MON ��*�*��QP .�. D�D$D�� ����� � ��� �Q5��� � HE�� .SR ���$���$�� ���� . ���W� . 0�0���*��� �( ��� . ��H�.���� . ����*�*�HE��( .

ÍUisÐ8�lÑ èzÑ%�b·PÙ+¸hÇ`é>¿;Ñ%�xÑ�r4½PµFµ(ºV¶�é�¿PµLé>¹�·+Õ-� Ñ%KbÑ%�>µC¹*¸C¸�Ñ��u¹y¶C¸l´n¹*¸C¸C³�µC·�»l¹*¸FÃÝÇ+º¼·+Æ4º¼·�¶C¸hµÄºÅ·+Æp¶�Ñ��[��� ¡��b d _�a:e@f3ghb¼éjq�k�n�l�NU¢�Û�¢�mS¢�T�£+é�noi�ÜpÜnÑ

ͤno£sÐf¿;Ñ;ÒbÑ��+¸N¹*¶h×*½;Ñ/ÒA¹p·+Æ�½�N Ú ÁYµC¹�»Ì³LÖ ½+µC×f¹�·+Õ�¶CÓ+¶C¸C³�»3Ám½Pµï¹*ÉVÆ�½Pµ(ºV¸hÇn» ¹�·+º¼»l¹*¸CºV½P·`Ñ�[ ¥X¥X¥Ctj`�x�]�~obd _�a:e@f3ghb¼é`Û�¢�k1i4l�N Û�Ü�m�¢�iné3noi�i�£nÑ

ͤn�nNÐV�lÑ Ú Ñ��+¸C³�´nÇ+³�·`Ñ:�@g1`�{�]4zV~�v/x4`���}G{|]�z&x4y z3_�`�{�g|}Ga�~LÑ�²[½PµÄÉÊÕ��+ÃLºV³�·�¸Cº§¦;ÃV��µÄ³L¶C¶�éjnoi�i*Î6Ñͤn�ÛsÐ8r Ñ+ÒA¹p×*³LÕ;¹nÑs�b³�»f½P·+¶C¸hµF¹*¸CºV½P·x½*ÁA·n¹*ºVÀ�³�é��¨rY��é�¹�·+Õ�©(r ´n¹*¸C¸C³�µC·�»l¹*¸CÃLÇ+º¼·+Æ ¹*ÉVÆ�½PµÄºÊ¸NÇn»f¶�éP¹p·+Õ

¸hÇ+³Lº¼µ�À*¹�µ(º¼¹*¸CºV½P·+¶�ÑJLK#MON ��*�*��QP .�. D�D$D��S �'�$��#�����A� �Q��� �Q5�� .�R *�����H���� . Y�� ,4ª�����U . H � ��*�. G

ͤno¢sÐV�fÑ Ú Ñ�«J¹�»l¹�·`Ñ>ßmÉVɼÙ+¶C¸hµC¹*¸F³LÕØ´n¹*¸C¸F³�µC·�»l¹*¸CÃLÇ+º¼·+Æ;ÑJLK#MON ��*�*��QP .�. D�D$D�� ��� � �E��G �.��F ���� HW�� .�R�¬ ��� ¬ . ������5 � ��*W.RG