您的位置:首页 > 其它

LeetCode --- 58. Length of Last Word

2015-03-14 23:13 513 查看
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,

[code]Given s = "Hello World", 
return 5.


这道题的要求是返回字符串中最后一个单词的长度。
遍历字符串,统计单词长度。只有一点需要注意,就是最后单词后面有空格的情况,因此需要判断下一字符是否是字母,如果是,这重置长度为0即可。
时间复杂度:O(n)
空间复杂度:O(1)

[code] 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。

[code] 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 };


转载请说明出处:LeetCode --- 58. Insert Interval
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: