https://oj.leetcode.com/problems/length-of-last-word/
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
.
class Solution {
public:
int lengthOfLastWord(const char *s)
{
bool space = false;
bool word = false;
bool preword = false; //看前一个是不是字母
bool prespace = false; //看前一个是不是空格
int begin = 0;
int end = 0;
int last = 0;
for(int i=0;i<=strlen(s);i++)
{
if(s[i] == ' ' || s[i] == '\0')
space = true;
word = false;
if(s[i] >= 'a' && s[i] <= 'z' || s[i] >= 'A' && s[i] <= 'Z')
{
word = true;
space = false;
}
if(word && !preword && !space) //word begins
{
begin = i;
preword = true;
prespace = false;
}
if(!word && !prespace && space) //word ends
{
end = i;
prespace = true;
preword = false;
last = end-begin;
}
}
return last;
}
};
参考自:http://blog.csdn.net/pickless/article/details/9938611
class Solution {
public:
int lengthOfLastWord(const char *s) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
int count = 0, last = 0;
while (*s != '\0') {
count = *s == ' ' ? 0 : count + 1;
last = count > 0 ? count : last;
s++;
}
return last;
}
};