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;
}
};
本文介绍了几种不同的方法来计算给定字符串中最后一个单词的长度。这些方法包括从字符串末尾开始遍历并忽略尾部空白字符,直到遇到第一个非空白字符为止;还讨论了如何在遇到空白字符时重置计数器。
383

被折叠的 条评论
为什么被折叠?



