LeetCode, leetcodeoj
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.
The requirement for this question is to return the length of the last word in the string.
Traverses the string and counts the word length. Note that the last word is followed by a space. Therefore, you must determine whether the next character is a letter. If yes, reset the length to 0.
Time Complexity: O (n)
Space complexity: 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 };
Of course, you can also introduce counter traversal cnt to record the current word length. The result variable res is updated only when cnt is added to 1.
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 else12 res = ++ cnt;13 }14 return res;15 }16 };
Reprinted please note the Source: LeetCode --- 58. Insert Interval