PKU 3096 - Surprising Strings

Autor da análise: dinakdinak

Link: http://acm.pku.edu.cn/JudgeOnline/problem?id=3096

Resumo

Para cada linha de texto da entrada, dizer se ela é supreendente ou não. Uma string é surpreendente se para para cada par de caracteres d distantes, esse par é único, com 0 <= d <= n-2, onde n é o tamanho da string.

Solução

Podemos fazer um laço que testa todos os n-1 Ds (D de 0 até n-2 inclusive), e dentro desse laço, para cada par, verificar se ele é único, o código abaixo ilustra uma forma de implementar:

n = strlen(s) - 1;
 
for(d=0; d<n; d++)
    for(i=0; i<n-d; i++){
        j = 0;
 
        while(j<i && ( s[j]!=s[i] || s[j+d+1]!=s[i+d+1] ))
            j++;
 
        if(j<i){
            printf("%s is NOT surprising.\n", s);
            return;
        }
    }
 
printf("%s is surprising.\n", s);

Testes

Entrada

Saída

Enquete

Qualidade do enunciado

Dificuldade do problema

Problema interessante

Discuta o problema

Add a New Comment
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License