Compressor P77072


Statement
 

pdf   zip

html

Estás trabando en un programa para comprimir documentos de texto. Escribe una función que encuentre la subcadena repetida más larga dentro de un fragmento de texto, tal que las dos ocurrencias de la subcadena no se superpongan. Tu programa distingue entre mayúsculas y minúsculas. Si hay más de una opción para la elección de subcadena, escoge aquella que ocurre antes en el texto.

Por ejemplo, dada la cadena “ABCDABCFG”, la aparición repetida más larga es “ABC”. En la cadena “ABABA”, tanto “AB” como “BA” son subcadenas repetidas, por lo que escogemos “AB” por aparecer en primer lugar. (Aunque “ABA” aparece dos veces como subcadena, las dos ocurrencias tienen una letra en común y no pueden usarse.)

Entrada

La entrada contiene diversas líneas. Cada línea contiene un texto a considerar. Cada texto contiene entre 1 y 50 carácteres entre ’A’-’Z’, ’a’-’z’, ’0’-’9’ y ’ ’. (Pista: getline(cin,s) lee una línea entera de texto y la guarda en la variable de tipo string s.)

Salida

Por cada texto de la entrada, una línea conteniendo la subcadena repetida más larga. Si ninguna subcadena se repite, escribe una línea vacía.

Public test cases
  • Input

    This is a test.

    Output

    is 
    
  • Input

    Testing testing 1 2 3.

    Output

    esting 
    
  • Input

    The quick brown fox jumps over the lazy dog.

    Output

    he 
    
  • Information
    Author
    Omer Giménez
    Language
    Spanish
    Other languages
    English
    Official solutions
    C++
    User solutions
    C++