给定由大写,小写字母和空格组成的字符串,返回最后一个单词的长度。
如果不存在最后一个单词,返回0
注意:
“单词”是指不包含空格符号的字符串
例如:
s = “hello World”, 那么返回的结果是5
格式:
第一行输入字符串s,然后输出s中最后一个单词的长度。
样例输入
Today is a nice day
样例输出
3
关于此题:
这道题有个陷阱,题目说是 s = “hello World”,那个这字符串也有可能是s
= “hello World ”(注意最后的空格),刚开始我没注意这个,结果浪费太多时间没找到问题所在,还有一点,做这些题时所声明的数组尽量大,如果A[100]、A[1000]什么的肯定AC不了,往大了来吧,题目没有说明测试范围也算是一个缺陷吧。
解析:
#include <stdio.h> #include <string.h> int main() { char s[10000]; int count = 0,i,c; gets(s); for(i = strlen(s)-1;i > 0;i--) { if(s[i] != ' ') //从后往前看,当最后一个不是空格的时候开始计数 count++; if(count > 0) //当count计数时所在位置的单词已经是最后一个了,在出现空格时表示结束 if(s[i] == ' ') break; } printf("%d\n",count); return 0; }
如果看不懂欢迎留言提问或者留下邮箱!!!o(∩_∩)o
(需要邀请码的请留言)
时间: 2024-11-05 12:23:29