Questão 16: difConsecutivos
Voltar
Defina uma função int dif Consecutivos (char s[])
que, dada uma string s
calcula o comprimento da maior sub-string com caracteres diferentes.
Exemplo
> difConsecutivos("Programacao")
(int) 5 // correspondente a "ogram"
Resolução
int not_in_prev(char s[], int n) {
int i;
for(i = 0; i < n; i++) {
if(s[i] == s[n]) {
return 0;
}
}
return 1;
}
int difConsecutivos(char s[]) {
int consec, difs = 0;
size_t i, j;
for(i = 0; s[i]; i++) {
for(j = 0, consec = 0; s[i+j] && not_in_prev(s+i,j); j++, consec++);
if (consec > difs) difs = consec;
}
return difs;
}