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 };