思路
逆向遍历:
从字符串末尾开始向前遍历,跳过末尾的空格,直到找到非空格字符。
遇到非空格字符时开始计数,直到再次遇到空格或字符串开头。
状态标记:
使用 state 标记是否已经进入最后一个单词的计数阶段:
state=0:尚未开始计数(跳过末尾空格)。
state=1:正在计数最后一个单词的字符。
提前终止:
如果在计数过程中遇到空格且 state=1,说明最后一个单词已结束,直接跳出循环。
class Solution {
public:int lengthOfLastWord(string s) {int count=0;int n=s.size();int state=0;for(int i=n-1;i>=0;i--){ if(s[i]!=' '){ state=1;count++;}if(s[i]==' '&&state){break;}}return count;}
};