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 =
return
Given s =
"Hello World",return
5.Updated 201309:
class Solution {
public:
int lengthOfLastWord(const char *s) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
int sz = strlen(s);
if (sz==0){return 0;}
int res=0;
for (int i=sz-1;i>=0;i--){
if (s[i]!=' '){res++;}
else{ if (res>0){return res;} }
}
return res;
}
};
Old version:
Analysis:
Simple problem, but be careful with the special cases. Such as: " " , " day" ,"day ",etc.
The basic idea is search from the end to the start, if the current letter is A-Z a-z, count the word, until find the space or meet the start, return the length.
Source Code:
class Solution {
public:
int lengthOfLastWord(const char *s) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
int len = strlen(s);
if (len==0) {return 0;}
int res=0;
bool fl=false;
while (len>=0){
if ( (s[len]>='a' && s[len]<='z')||(s[len]>='A' && s[len]<='Z') ){fl=true; res=res+1;}
if (s[len]==' ' && fl) { return res;}
len--;
}
if (fl) {return res;}
if (!fl){return 0;}
}
};
No comments:
Post a Comment