Se da o propozitie formata din literele mici din alfabet si caracterul spatiu. Sa se scrie un program care sa gaseasca cea mai lunga secventa in care literele sa fie ordonate alfabetic.
Răspunsuri la întrebare
Răspuns de
1
#include <iostream>
#include <cstring>
using namespace std;
int main(){
char s[200];
cin.get(s, 200);
int i, start_max=0, end_max=0, start=0, end;
for(i=1;i<strlen(s);i++){
if(s[i] != ' ' && (s[i] > s[i-1] && s[i-1] != ' ')){
//litera de pe i
//e mai mare decât cea de pe i-1
//deci alfabetic
end = i;
}else{
if(end - start > end_max - start_max){
start_max = start;
end_max = end;
}
end = 0;
start = i;
}
}
cout<<start_max<<" "<<end_max<<endl;
char s2[200];
strncpy(s2, s+start_max, end_max-start_max+1);
cout<<s2;
}
// start_max și end_max stochează locațiile de început și sfârșit ale șirului alfabetic cel mai lung
// start și end stochează locațiile de început și sfârșit ale ultimului șir alfabetic verificat :))
Să-mi zici, totuși, dacă nu înțelegi
#include <cstring>
using namespace std;
int main(){
char s[200];
cin.get(s, 200);
int i, start_max=0, end_max=0, start=0, end;
for(i=1;i<strlen(s);i++){
if(s[i] != ' ' && (s[i] > s[i-1] && s[i-1] != ' ')){
//litera de pe i
//e mai mare decât cea de pe i-1
//deci alfabetic
end = i;
}else{
if(end - start > end_max - start_max){
start_max = start;
end_max = end;
}
end = 0;
start = i;
}
}
cout<<start_max<<" "<<end_max<<endl;
char s2[200];
strncpy(s2, s+start_max, end_max-start_max+1);
cout<<s2;
}
// start_max și end_max stochează locațiile de început și sfârșit ale șirului alfabetic cel mai lung
// start și end stochează locațiile de început și sfârșit ale ultimului șir alfabetic verificat :))
Să-mi zici, totuși, dacă nu înțelegi
Alte întrebări interesante
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Ed. tehnologică,
8 ani în urmă
Limba română,
9 ani în urmă
Engleza,
9 ani în urmă
Biologie,
9 ani în urmă
Limba română,
9 ani în urmă