Featured image of post Length of Last Word

Length of Last Word

58. 最后一个单词的长度

分析

  1. 从后往前遍历:
    • 从字符串末尾开始,跳过尾随空格
    • 遇到第一个非空格字符,开始计数,直到遇到空格或遍历结束
  2. 计数计算:
    • 遇到空格时,说明最后一个单词已遍历完,返回单词长度
    • 如果整个字符串遍历完,仍未遇到空格,说明字符串只有一个单词

时间复杂度

时间复杂度 O(n)

空间复杂度

空间复杂度为 O(1)

C++代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Solution
{
public:
    int lengthOfLastWord(string s)
    {
        // 从字符串末尾开始遍历
        for (int i = s.size() - 1; i >= 0; --i)
        {
            if (s[i] == ' ')  // 跳过尾随空格
                continue;

            int j = i - 1;
            // 找到当前单词的起始位置
            while (j >= 0 && s[j] != ' ')
                --j;

            // 单词长度 = 结束位置 - 起始位置
            return i - j;
        }
        return 0;  // 字符串全是空格时返回 0
    }
};
Built with Hugo
Theme Stack designed by Jimmy