给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。
单词 是指仅由字母组成、不包含任何空格字符的最大子字符串
解题思想:
反向遍历
假如从前向后遍历字符串,会遇到很多的空格,无法判断哪一个是最后一个单词,哎呀,我在想自己是不是傻了,应该从后往前找不就行了,找到一个空格就可以算出最后一个单词的长度,不过在此应该考虑两种情况
(1)“hello world”
(2)"hello world "
注意观察两者的不同,后者一开始就碰到了空格,所以应该先把后面出现的空格过滤掉
class Solution {
public:
int lengthOfLastWord(string s) {
int l=s.size();//字符串长度
int index=l-1;//用于索引
while(s[index]==' ')//假如出现空格的情况
{
index =index-1;//查找范围向前变化
}
int sum=0;
while(index>=0&&s[index]!=' ')//注意判断条件
{
sum++;
index--;
}
return sum;
}
};