最长最短单词

【描述】lwI100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

输入1行句子(不多于200个单词,每个单词长度不超过100),只包含字母、空格和逗号。单词由至少一个连续的字母构成,空格和逗号都是单词间的间隔。lwI100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

试输出第1个最长的单词和第1个最短单词。lwI100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【输入】lwI100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

一行句子。lwI100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【输出】lwI100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

两行输出:lwI100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

第1行,第一个最长的单词。lwI100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

第2行,第一个最短的单词。lwI100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【样例输入】lwI100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

I am studying Programming language C in Peking University

【样例输出】lwI100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

Programming
I

【提示】lwI100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

如果所有单词长度相同,那么第一个单词既是最长单词也是最短单词。lwI100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【参考程序】lwI100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

C++版本lwI100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
方法一:lwI100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 lwI100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

  1. # include <iostream> 
  2. # include <string> 
  3.  
  4. using namespace std; 
  5.  
  6. int main() 
  7.     string s; 
  8.     getline(cin, s, '\n'); 
  9.     s += ' '
  10.     int len = s.size(); 
  11.     int i = 0, max_len = 0, min_len = 101, j = 0, x, y; 
  12.     for (i = 0; i < len; i++)  
  13.     { 
  14.         if (s[i] != ' ' && s[i] != ','
  15.         { 
  16.             j++; 
  17.         } 
  18.         else if (j > 0)  
  19.         {   //第一个符号可能是空格或逗号  
  20.             if (j > max_len) 
  21.             { 
  22.                 max_len = j; 
  23.                 x = i - j; 
  24.             } 
  25.             if (j < min_len) 
  26.             { 
  27.                 min_len = j; 
  28.                 y = i - j; 
  29.             } 
  30.             j = 0; 
  31.         } 
  32.     } 
  33.     cout << s.substr(x, max_len) << endl; 
  34.     cout << s.substr(y, min_len); 
  35.     return 0; 
方法二:
  1. #include<iostream> 
  2. #include<string> 
  3.  
  4. using namespace std; 
  5.  
  6. int main() 
  7.     string s; 
  8.     getline(cin, s, '\n'); 
  9.     s += ' '
  10.     int i = 0;//利用前后索引的方法 
  11.     int min_len = 101, max_len = 0; 
  12.     string min_s, max_s; 
  13.  
  14.     while (i < s.size()) 
  15.     { 
  16.         int j = i; 
  17.         while (s[j] != ' ' && s[j] != ','
  18.         { 
  19.             j += 1; 
  20.         } 
  21.         if (j == i) 
  22.         { 
  23.             i += 1; 
  24.             continue
  25.         } 
  26.         string t = s.substr(i, j - i); 
  27.         if (t.size() < min_len) 
  28.         { 
  29.             min_len = t.size(); 
  30.             min_s = t; 
  31.         } 
  32.         if (t.size() > max_len) 
  33.         { 
  34.             max_len = t.size(); 
  35.             max_s = t; 
  36.         } 
  37.         i = j + 1; 
  38.     } 
  39.     cout << max_s << endl; 
  40.     cout << min_s; 
  41.     return 0; 

关 键 词

最长最短单词

相关教程

提示声明

  • 免责声明:本站资源均来自网络或者用户投稿,仅供用于学习和交流:如有侵权联系删除!

猜你喜欢