解法一:
class Solution {
public:
int lengthOfLastWord(string s) {
return LengthLastWorld(s.c_str());
}
int LengthLastWorld(const char* s)
{
int length=0;
while(*s)
{
if(*s++!=' ')
length++;
else if(*s && *s!=' ')
length=0;
}
return length;
}
};
解法二:
class Solution {
public:
int lengthOfLastWord(string s) {
if(s.empty())
return 0;
int left=s.size()-1,right,length;
while(left>=0 && s[left]==' ')
left--;
if(left<0)
return 0;
right=left;
while(left>=0 && s[left]!=' ')
left--;
length=right-left;
return length;
}
};
解法三:
class Solution {
public:
int lengthOfLastWord(string s) {
auto first=find_if(s.rbegin(),s.rend(),::isalpha);
auto right=find_if_not(first,s.rend(),::isalpha);
return distance(first,right);
}
};