0
已解决
李智宸
高级守护
高级守护
4012 查找最大最小单词
经验值:800 时间限制:1000毫秒
题目描述 Description
给出一个句子,句子中的每个单词间用一个空格隔开,每个单词仅包含字母(大写或小写),请你求出这个句子中字典序最大和最小的一个单词,如果有相同单词,仅输出一个即可。
输入描述 Input Description
第一行,一个字符串,仅包含空格和字母,每个单词间用一个空格隔开
输出描述 Output Description
一行,该句子中字典序最大和最小的一个单词,用一个空格隔开
样例输入 Sample Input
I have a Dream
样例输出 Sample Output
have Dream
0
已采纳
张皓轩
中级光能
中级光能
核心:
getline(cin,a);
int xb=0;
a=" "+a+" ";
for(int i=0;i<a.size();i++){
if(a[i]!=' '&&a[i-1]==' '){
xb=i;
}
if(a[i]!=' '&&(i+1==a.size()||a[i+1]==' ')){
string s3=a.substr(xb,i-xb+1);
s1=s3;
s2=s3;
break;
}
}
for(int i=0;i<a.size();i++){
if(a[i]!=' '&&a[i-1]==' '){
xb=i;
}
if(a[i]!=' '&&(i+1==a.size()||a[i+1]==' ')){
string s3=a.substr(xb,i-xb+1);
if(s3>s1){
s1=s3;
}
if(s3<s2){
s2=s3;
}
}
}
cout<<s1<<" "<<s2;
定义:
string a,s1,s2;
头文件:
#include<iostream>
#include<string>