2444 - 最长最短单词
题目描述
输入一行长度不超过250位的字符串,其中只有小写字母和空格,小写字母组成单词,单词之间只用一个空格隔开,字符串的开始和结束都没有多余空格,输出长度最长的单词和最短的单词,若有多个单词符合要求,只要求输出从前往后数第一个满足要求的单词。
输入
输入文件只有一行字符串,由小写字母和空格组成。
输出
输出文件有两行,第一行为最长的单词,第二行为最短的单词。
样例
输入
this is my book
输出
this
is
标签
字符串
#include
using namespace std;
int main() {
string a;
int i,len,l=0,max=0,min=101,x,y;
getline(cin,a);
len=a.size();
a[len]=' ';
for(i=0; i<=len; i++) {
if(a[i]!=' '&&a[i]!=',') {
l++;
} else if(l>0) {
if(l>max) {
max=l;
x=i-l;
}
if(lmin=l;
y=i-l;
}
l=0;
}
}
for(i=x; ifor(i=y; i
测试点1: Accepted, 用时: 0 ms, 内存: 256 KB
测试点2: Accepted, 用时: 0 ms, 内存: 256 KB
测试点3: Accepted, 用时: 0 ms, 内存: 256 KB
测试点4: Accepted, 用时: 0 ms, 内存: 256 KB
测试点5: Accepted, 用时: 0 ms, 内存: 252 KB
测试点6: Accepted, 用时: 0 ms, 内存: 252 KB
测试点7: Wrong Answer, 用时: 0 ms, 内存: 256 KB
各位朋友,帮我看一下这个代码哪里错了!
可能是min初始值太小了,min=251;试试?(不确定)
(string a,完全可以改成char a[252]={0};然后读取是cin.getline(a,250);len=strlen(a);或者不求len,算到a[i]==0就是到最后了;其他不变)
(...&& a[i]!= ',' 好像没用?题目提到输入只包含小写字母和空格)