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
.
一开始想得比较简单,找到最后一个' '的位置,用s的长度减去这个位置的索引就是最后一个单词的长度。
class Solution {
public:
int lengthOfLastWord(string s) {
if(s.empty())
return 0;
int index = s.find_last_of(' ');
return s.length() - index-1;
}
};
但是会报错,因为没有考虑到‘a ’的情况。所以一开始需要除去后面的空格再计数。给出两种解答:
class Solution {
public:
int lengthOfLastWord(string s) {
int length = s.size();
while(s[length-1] == ' ' )
{
length--;
}
string s1 = s.substr(0, length);
int index = s1.find_last_of(' ');
return length-1-index;
}
};
class Solution {
public:
int lengthOfLastWord(string s) {
int length = s.size();
int sum = 0;
while(s[length-1] == ' ' )
{
length--;
}
for(int i = length-1; i >= 0; i--)
{
if(s[i] != ' ')
{
sum++;
}
else
break;
}
return sum;
}
};