最后一个单词的长度

     给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。
    单词是指仅由字母组成、不包含任何空格字符的最大子字符串。(s 仅有英文字母和空格 '  ' 组成;s 中至少存在一个单词)

class Solution {
public:
    int lengthOfLastWord(string s) {
        // 初始化索引i为字符串最后一个字符的位置(s.size()-1)
        // a用于记录最后一个单词的长度,初始化为0
        int i = s.size() - 1, a = 0; 
        
       // 第一步:跳过字符串末尾的所有空格
        // 条件i >= 0:防止i减到负数后访问s[i]导致越界
        // 条件s[i] == ' ':继续跳过空格
        while(i >= 0 && s[i] == ' ')
            i--;

        // 第二步:统计最后一个单词的长度
        // 条件i >= 0:确保索引有效(未超出字符串开头)
        // 条件s[i] != ' ':当前字符是单词的一部分,继续统计
        while(i >= 0 && s[i] != ' ')
        {
            a++;  // 长度加1
            i--;  // 索引左移,检查下一个字符
        }
        return a;   
    }
};

 

你可能感兴趣的:(算法)