问题标题: 酷町堂:1139 输出单词

0
0
已解决
贾一凡
贾一凡
中级光能
中级光能

题目描述 Description

输入1行句子(不多于100个单词,每个单词长度不超过100),只包含字母和空格。单词由至少一个连续的字母构成,单词与单词之间只有一个空格。试输出第1个最长的单词和第1个最短单词。

输入描述 Input Description

一行句子,包括单词和空格。

输出描述 Output Description

两行输出:
第1行,第一个最长的单词。
第2行,第一个最短的单词。

样例输入 Sample Input

I am studying programming language pascal in University of Science and technology of China

样例输出 Sample Output

programming

I

数据范围及提示 Data Size & Hint

如果所有单词长度相同,那么第一个单词既是最长单词也是最短单词。

 

#include<iostream>

using namespace std;

int main(){

    string a,s1,s2;

    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.size()>=s1.size()){

                s1=s3;

            }

            if(s3.size()<=s2.size()){

                s2=s3;

            }

        }

    }

    cout<<s1<<"\n"<<s2;

    return 0;

}

60分 Wrong Answer

贾一凡在2022-06-28 10:27:48追加了内容

回答即采纳


0
0
0
我要回答