58. 最后一个单词的长度

Introduction

Question: 58. 最后一个单词的长度

给你一个字符串 s,由若干单词组成,单词之间用空格隔开。返回字符串中最后一个单词的长度。如果不存在最后一个单词,请返回 0 。

单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。

 

示例 1:

输入:s = "Hello World"
输出:5

示例 2:

输入:s = " "
输出:0

 

提示:

  • 1 <= s.length <="104
  • s 仅有英文字母和空格 ' ' 组成

解法一

Analysis

从后向前遍历,算长度即可,记得得跳过后面的空格。

Implement

1
2
3
4
5
6
7
8
9
int lengthOfLastWord(string s) {
int n = s.size() - 1, i;
// skip space
for(;n >= 0 && s[n] == ' ';n--);
if (n < 0) return 0;

for(i = n - 1;i >= 0 && s[i] != ' ';i--);
return n - i;
}