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(string s) {
int n = s.size(), cnt = 0;
for(int i = 0; i < n; ++i){
if(s[i] != ' ')
cnt++;
else if(s[i] == ' ' && i != n-1)
for(int j = i+1; j < n; ++j)
if (s[j] != ' ')
{
cnt = 0;
break;
}
}
return cnt;
}
};
看起来神奇。。 炒鸡慢
class Solution {
public:
int lengthOfLastWord(string s) {
while(s.back()==' ') s.erase(s.length()-1);
return s.length()-s.rfind(' ')-1;
}
};
class Solution {
public:
int lengthOfLastWord(string s) {
int n = s.size();
int cnt = 0;
while(s[n-1] == ' ')
{
s.erase(n-1);
n--;
}
for(int i = 0; i < n; ++i){
if(s[i] != ' ')
cnt++;
else
cnt = 0;
}
return cnt;
}
};
从后面开始!
class Solution {
public:
int lengthOfLastWord(string s) {
int len = 0, tail = s.size() - 1;
while(tail >= 0 && s[tail] == ' ') tail--;
while(tail >= 0 && s[tail] != ' ')
{
len++;
tail--;
}
return len;
}
};