【题目链接】

ybt 1143:最长最短单词
OpenJudge NOI 1.7 25:最长最短单词

【题目考点】

1. 字符串处理

【解题思路】

  • 思路1:将字符串分解为多个单词,而后求出各个单词的长度,再找出最长和最短的单词。
  • 思路2:遍历字符串,同时构造单词。遇到空格或逗号时完成构造一个单词,而后判断该单词是否是已知的最长或最短单词,记下最长或最短单词。

【题解代码】

解法1:用字符数组,用二维数组保存多个单词

  • 将字符串拆解为多个单词,用二维数组保存。
  • 遍历该二维数组,找出其中最长和最短单词。
#include<bits/stdc++.h>
using namespace std;
int main()
{char s[205][105]; //保存分割后的多个单词,s[i]是第i个单词字符串 char c;//当前读取的字符 int w = 0, j = 0;//w:s的第一下标,表示单词编号。 j:s的第二下标,表示某单词的第几字符 while((c = getchar()) != '\n')//不断读取字符 {if(c != ' ' && c != ',')//如果不是分隔符,那么向单词s[w]添加一个字符 s[w][j++] = c;else if(j != 0)//如果是分隔符,且排除有连续空格或逗号的情况 {s[w][j] = '\0';//为单词s[w]添加字符串末尾 w++;//开始填充下一个单词 j = 0; }}s[w][j] = '\0';//为最后一个单词添加末尾 w++;int wordNum = w;//单词总数量 int maxlen = 0, minlen = 200;//maxlen:最长单词长度、 minlen:最短单词长度 int max_i, min_i;//max_i:最长单词编号, min_i:最短单词编号 for(int i = 0; i < wordNum; ++i)//遍历所有单词,寻找其中最长和最短单词 { if(strlen(s[i]) > maxlen){max_i = i;maxlen = strlen(s[i]);}if(strlen(s[i]) < minlen){min_i = i;minlen = strlen(s[i]);}}puts(s[max_i]);//puts输出一个字符串后自动输出换行符 puts(s[min_i]);return 0;
}

解法2:用string类,遍历字符串,构造单词并看其是否是最长或最短单词

#include<bits/stdc++.h>
using namespace std;
int main()
{string s, word, maxWord, minWord;//s:输入的字符串 word:分解出的一个单词 maxWord:最长单词 minWord最短单词 getline(cin, s);s += ' ';//字符串末尾加上一个空格分隔符,便于统一处理 int wst = 0, wlen = 0;//wst:单词的起始位置 wlen:单词的长度 int minLen = 200, maxLen = 0;//minLen:最短长度 maxLen:最大长度 for(int i = 0; i < s.length(); ++i){if(s[i] == ' ' || s[i] == ',')//如果遇到分隔符{if(wlen > 0)//wlen > 0 排除有连续的分隔符的情况{word = s.substr(wst, wlen);//从wst位置到i-1位置构成一个单词,其长度为wlen,截取该单词 if(wlen > maxLen)//如果该单词比最长单词长,那么该单词就是最长单词 {maxWord = word;maxLen = wlen;}if(wlen < minLen)//如果该单词比最短单词短,那么该单词就是最短单词{minWord = word;minLen = wlen;}}wst = i + 1;//分隔符的下一个位置作为下一个单词的起始位置 wlen = 0;}else//如果遇到一般字符 wlen++;//增加该单词长度 }cout<<maxWord<<endl;cout<<minWord<<endl;return 0;
}

信息学奥赛一本通 1143:最长最短单词 | OpenJudge NOI 1.7 25相关推荐

  1. 信息学奥赛一本通 1229:电池的寿命 | OpenJudge NOI 4.6 2469:电池的寿命

    [题目链接] ybt 1229:电池的寿命 OpenJudge NOI 4.6 2469:电池的寿命 [题目考点] 1. 贪心 [解题思路] 1. 贪心选择性质的证明 电池分配主要有两步, 第一步:将 ...

  2. 信息学奥赛一本通 1227:Ride to Office | OpenJudge NOI 4.6 2404:Ride to Office

    [题目链接] ybt 1227:Ride to Office OpenJudge NOI 4.6 2404:Ride to Office 原题是英文题,虽说两题题意相同,但一本通网站没有对该问题进行直 ...

  3. 信息学奥赛一本通 1132:石头剪子布 | OpenJudge NOI 1.7 04

    [题目链接] ybt 1132:石头剪子布 OpenJudge NOI 1.7 04:石头剪子布 [题目考点] 1. 字符串处理 2. 判断字符串相同 s1,s2是字符数组,判断二者是否相同:strc ...

  4. 信息学奥赛一本通 1404:我家的门牌号 | OpenJudge NOI 2.1 7649:我家的门牌号 | 小学奥数 7649

    [题目链接] ybt 1404:我家的门牌号 OpenJudge NOI 2.1 7649:我家的门牌号 OpenJudge NOI 小学奥数 7649:我家的门牌号 注意:一本通OJ和OpenJud ...

  5. 信息学奥赛一本通 1181:整数奇偶排序 | OpenJudge NOI 1.10 06:整数奇偶排序

    [题目链接] ybt 1181:整数奇偶排序 OpenJudge NOI 1.10 06:整数奇偶排序 [题目考点] 1. 排序 [君义精讲]排序算法 [解题思路] 解法1:将奇数和偶数分开,分别排序 ...

  6. 信息学奥赛一本通 1223:An Easy Problem | OpenJudge NOI 4.6 1455:An Easy Problem

    [题目链接] ybt 1223:An Easy Problem OpenJudge NOI 4.6 1455:An Easy Problem [题目考点] 1. 数制 2. 枚举 [解题思路] 解法1 ...

  7. 信息学奥赛一本通 1177:奇数单增序列 | OpenJudge NOI 1.10 02:奇数单增序列

    [题目链接] ybt 1177:奇数单增序列 OpenJudge NOI 1.10 02:奇数单增序列 [题目考点] 1. 排序 [君义精讲]排序算法 [解题思路] 题目中说的是要先取出奇数,再对奇数 ...

  8. 信息学奥赛一本通 1168:大整数加法 | OpenJudge NOI 1.6 10:大整数加法

    [题目链接] ybt 1168:大整数加法 OpenJudge NOI 1.6 10:大整数加法 [题目考点] 1. 高精度 考察:高精加高精 高精度计算讲解 [解题思路] 注意:输入可能有多余的前导 ...

  9. 信息学奥赛一本通 1413:确定进制 | OpenJudge NOI 1.13 34:确定进制 | OpenJudge NOI 2.1 1973:确定进制

    [题目链接] ybt 1413:确定进制 OpenJudge NOI 1.13 34:确定进制 OpenJudge NOI 2.1 1973:确定进制 注意:两OJ平台上题目条件不同,ybt中:2≤b ...

最新文章

  1. 一个简单的slider滑块组件
  2. python调用.net动态库
  3. 二维计算几何基础知识
  4. muduo网络库学习(五)服务器监听类Acceptor及Tcp连接TcpConnection的建立与关闭
  5. softmax ce loss_手写softmax和cross entropy
  6. 打造安全可靠的研发中心桌面
  7. 65.Linux/Unix 系统编程手册(下) -- 附录
  8. 商业计划书,有什么idea,模板帮你来
  9. 企业为什么需要一套固定资产管理系统
  10. PL7501C原厂双节锂电池充电管理芯片
  11. 佛系前端面试题记录--第四周
  12. [国家集训队]middle——中位数思维题
  13. linux 中meltdown指令,用代码切身实践体会meltdown漏洞——初学者的体验感受
  14. 游戏实战篇|原神人物模型下载教程,并在Unity中给模型 添加动画【伯嫖最新原神所有人物模型】文末送书
  15. Android之Wifi使用
  16. 吉林大学数据库系统原理期末复习笔记
  17. 支付宝网站付沙箱配置
  18. 视频号运营指南百科书,新手必备干货丨国仁网络
  19. 关于无刷电机控制芯片UC2625的使用
  20. 舆情总结汇报撰写范文模板格式详介

热门文章

  1. IOS的一些文件操作。(沙箱) 在Documents目录下创建文件
  2. Modern UI for WPF 开源项目(5):定义logo
  3. IEnumerable
  4. 6个特征,判断你的领导值不值得追随
  5. 美国500万个工作已被机器取代!超级AI会让人类永生还是灭亡?
  6. S5PV210裸机之重定位
  7. android studio 引入httpclient,HttpClient不会导入Android Studio
  8. 不懂 ZooKeeper?没关系,这一篇给你讲的明明白白
  9. 那些和闰年相关的 Bug
  10. maven 项目上传私服pom配置