#2738 DistLungMax
Cerința
Se dă un șir de caractere care conține cuvinte formate din litere mici ale alfabetului englez și separate printr-un singur spațiu. Să se determine cel mai lung cuvânt care are toate literele distincte. Dacă nu există niciun cuvânt cu toate literele distincte se va afișa -1.
Date de intrare
Programul citește de la tastatură un șir de caractere.
Date de ieșire
Programul va afișa pe ecran cuvântul determinat sau -1, conform cerinței.
Restricții și precizări
șirul dat conține maximum 255 de caractere
dacă există mai multe cuvinte cu toate literele distincte de lungime maximă se va afișa cel mai din stânga
Exemplu
Intrare
abcabcd abcdef ab
Ieșire
abcdef
Răspunsuri la întrebare
Răspuns de
4
Răspuns:
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char sir[256]="", maxc[256]="";
unsigned int maxlen=0;
cin.getline(sir, 255);
char *p=strtok(sir, " ");
while(p) {
if(strlen(p)>maxlen) {
int ok=1;
for(unsigned int i=0; i<strlen(p)-1;i++)
for(unsigned int j=i+1; j<strlen(p); j++)
if(p[i]==p[j]) ok=0;
if(ok==1) {
strcpy(maxc,p);
maxlen=strlen(p);
}
}
p=strtok(NULL, " ");
}
if(strlen(maxc))cout<<maxc;
else cout<<"-1";
return 0;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Fizică,
9 ani în urmă