Data Structure and Algorithm Length of Last Word 58. 最后一个单词的长度 分析 从后往前遍历: 从字符串末尾开始,跳过尾随空格 遇到第一个非空格字符,开始计数,直到遇到空格或遍历结束 计数计算: 遇到空格时,说明最后一个单词已遍历完,返回单词长度 如果整个字符串遍历完,仍未遇到空格,说明字符串只有一个单词 时间复杂度 时间复杂度 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 } };