2444 - 最长最短单词

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]!= ',' 好像没用?题目提到输入只包含小写字母和空格)