Given a string s consists of upper/lower-case alphabets and empty space characters ‘ ‘, return the length of last word in the string.
If the last word does not exist, return 0.
Note: A word is defined as a character sequence consists of non-space characters only.
For example,
Given s = "Hello World",
return 5.
这道题的要求是返回字符串中最后一个单词的长度。
遍历字符串。统计单词长度。仅仅有一点须要注意。就是最后单词后面有空格的情况,因此须要推断下一字符是否是字母,假设是。这重置长度为0就可以。
时间复杂度:O(n)
空间复杂度:O(1)
1 class Solution
2 {
3 public:
4 int lengthOfLastWord(const char *s)
5 {
6 int l = 0;
7 while(*s)
8 {
9 if(‘ ‘ != *s ++)
10 ++ l;
11 else if(*s && ‘ ‘ != *s)
12 l = 0;
13 }
14 return l;
15 }
16 };
当然,也能够引入计数器遍历cnt用于记录当前单词长度,仅仅有当cnt加1的时候,更新结果变量res。
1 class Solution
2 {
3 public:
4 int lengthOfLastWord(const char *s)
5 {
6 int res = 0, cnt = 0;
7 while(*s)
8 {
9 if(‘ ‘ == *s ++)
10 cnt = 0;
11 else
12 res = ++ cnt;
13 }
14 return res;
15 }
16 };