Task
思路:
题目让返回最后一个单词的长度,那么首先想到的就是能不能倒着遍历,遇到了倒数第一个单词后面的那个空格就停止,然后返回前面的单词的长度!
但是也有一些问题,比如最后一个单词后面并不就是结束,也有可能还是个空格,如果遇到这个空格就停下来的话,那就错误了,因此得设置flag来规避这种情况:
代码:
class Solution {
public:
int lengthOfLastWord(string s) {
if(s.empty()) return 0;
int length = 0; // 记录当前单词的长度
int flag = 0; // 是否是计算完最后一个单词后遇到空格,是:1; 否:0
for (int i = s.size()-1; i >=0; i--){
if (s[i] != ' '){
flag = 1;
length ++;
}else if( s[i] == ' ' && flag == 1) //这个判断条件规避了最后一个单词后面是空格的情况,因为如果倒数第一个就是空格,那flag不可能是1的!
return length;
}
return length;
}
};