首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

最长单词 2880:句中最长的单词

题目要求找出句子中最长的单词,是一个典型的字符串处理问题。

题目来源:

http://bailian.openjudge.cn/practice/2880/

2880: 句中最长的单词

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

描述

输入一个英文句子,长度不超过40个字符。编写程序,输出句子中最长的一个单词。

1.输入只有一个句子,不需使用while

2.若句尾有标点,则标点和最后一个单词可看成是一个单词,可以不用作额外判断

3.假设句中最长的单词只有一个

输入

长度不超过40的字符串

输出

句中最长的单词

样例输入

This is a test sentence

样例输出

sentence

由于符号也被算作单词,并且我们不知道都有哪些符号,所以只能通过判断是否为空格和结束符来确定一个单词的长度。最后比较大小输出最长的单词。

#include

usingnamespacestd;

intmain() {

charcstr[41];

cin.getline(cstr, 41);

intidx = 0, mlen = 0, mIdx = 0;

while(cstr[idx] !='\0') {

if(cstr[idx] ==' ') {

idx++;

continue;

}

intlen = 0, lidx;

if(cstr[idx] !=' ') {

lidx = idx;

while(cstr[idx] !=' ') {

len++;

if(cstr[idx] =='\0')

break;

idx++;

}

}

if(len > mlen) {

mlen = len;

mIdx = lidx;

}

}

charres[41];

for(idx = 0; idx

res[idx] = cstr[mIdx + idx];

}

res[idx] ='\0';

cout

return0;

}

代码长度:563B

内存:128kB

时间:1ms

通过率:95%

最小内存:128kB

最短时间:0ms

带有空格的字符串需要通过cin.getline来获取,之后分别设置标志记录单词的起始下标和长度,通过空格和'\0'来判断单词结尾,并比较单词长度最后输出。

有任何的改进意见欢迎大家在微信平台公众号主页面留言。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180827G06YL900?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券