Given a string s consists of upper/lower-case alphabets and empty space characters
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 =
return
Analysis:' ', 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.- Just traverse the char array until you hit NULL.
- Remember to reset the count once you hit a space char, iff it's not the last word.
- The logic I use to determine that it is NOT the last word, where we need to reset the count, is: 1) If current char is space char; 2) If the next char is not space char; 3) If the next char is not NULL.
e.g., string: "ab cde "
where we need to reset count when we hit the space before c, we shouldn't reset count when we hit spaces after e.
Code:
class Solution {
public:
int lengthOfLastWord(const char *s) {
if (*s==NULL) return 0;
int len=0;
const char *cur=s;
while(*cur!=NULL) {
if (*cur!=' ')
len++;
if (*cur==' ' && *(cur+1)!=' ' && *(cur+1)!=NULL) // if there is a next word
len=0;
cur++;
}
return len;
}
};
No comments:
Post a Comment