R:最长最短单词

总时间限制: 
1000ms
 
内存限制: 
65536kB
描述

输入1行句子(不多于200个单词,每个单词长度不超过100),只包含字母、空格和逗号。单词由至少一个连续的字母构成,空格和逗号都是单词间的间隔。

试输出第1个最长的单词和第1个最短单词。

输入
一行句子。
输出
两行输出:
第1行,第一个最长的单词。
第2行,第一个最短的单词。
样例输入
I am studying Programming language C in Peking University
样例输出
Programming
I
#include<iostream>
#include <string>
using namespace std;
int main()
{
    string s;
    getline(cin, s);
    int sum = 0;
    int pos1, pos2, i, max = 0, min = 1000;
    for (i = 0; i < s.size(); ++i)
    {
        if (s[i] != ' '&&s[i] != ',')
        {
            sum++;
        }
        else if (sum > 0)
        {
            if (sum > max)
            {
                max = sum;
                pos1 = i;
            }
            if (sum < min)
            {
                min = sum;
                pos2 = i;
            }
            sum = 0;
        }
    }
    int j;
    for (j = pos1 - max; j < pos1; ++j)
    {
        cout << s[j];
    }
    cout << endl;
    for (j = pos2 - min; j < pos2; ++j)
    {
        cout << s[j];
    }
    return 0;
}//这个有点问题
 1 #include<string.h>
 2 #include<iostream>
 3 using namespace std;
 4  
 5 string s;
 6  
 7 int main()
 8 {
 9  
10     getline(cin, s);
11     int cnt=0;
12     int x1=-1;
13     int y1=-1;
14     int x2=-1;
15     int y2=-1;
16     int maxx=0;
17     int minn=200;
18  
19     for(int i=0;i<s.size();i++)
20     {
21         if(i==s.size()-1||s[i]==' '||s[i]==',')
22         {
23             if(i>0&&(s[i-1]==' '||s[i-1]==','))
24             {
25                 y1=i;
26                 y2=i;
27                 continue;
28             }
29             if(i==s.size()-1)
30             {
31                 cnt++;
32             }
33             if(cnt>maxx)
34             {
35                 maxx=cnt;
36                 x1=y1;
37             }
38             if(cnt<minn)
39             {
40                 minn=cnt;
41                 x2=y2;
42             }
43             y1=i;
44             y2=i;
45             cnt=0;
46         }
47         else
48         {
49             cnt++;
50         }
51  
52     }
53  
54     for(int i=x1+1;i<x1+maxx+1;i++)
55     {
56         cout<<s[i];
57     }
58     cout<<endl;
59         for(int i=x2+1;i<x2+minn+1;i++)
60     {
61         cout<<s[i];
62     }
63  
64  
65     return 0;
66 }

 

posted @ 2020-12-14 23:00  丁帅帅dss  阅读(1029)  评论(1)    收藏  举报