1. 题目
给你一个字符串
s
,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串
2. 示例
示例 1:
输入:s = "Hello World" 输出:5 解释:最后一个单词是“World”,长度为 5。示例 2:
输入:s = " fly me to the moon " 输出:4 解释:最后一个单词是“moon”,长度为 4。示例 3:
输入:s = "luffy is still joyboy" 输出:6 解释:最后一个单词是长度为 6 的“joyboy”。
3. 解决思路及分析
由于是要求求出最后一个单词的长度,故可从末尾开始索引,每个单词的前后都可能会有一些空格,可通过索引判断是否是空格来索引单词。
int lengthOfLastWord(char* s) {
int m,n=0;
int sLen = strlen(s); //计算出字符串长度
for(m=sLen-1;m>=0;m--) //从末尾开始索引
{
if(s[m]==' ') //若末尾为空格,直接跳出循环,开始下一次索引
{
continue;
}
else //当检测不到空格,说明检测到单词
{
n++;
}
if(n > 0 && m>0 && s[m-1]==' ')//满足 n,m大于0,且下一个元素为空格则说明单词索引完毕
{
break;
}
}
return n; //返回长度
}