给定一个仅包含大小写字母和空格 ' '
的字符串,返回其最后一个单词的长度。
如果不存在最后一个单词,请返回 0 。
说明:一个单词是指由字母组成,但不包含任何空格的字符串。
示例:
输入: "Hello World" 输出: 5
解法一:
class Solution {
public:
int lengthOfLastWord(string s) {
int len = s.length();
int ans = 0; //用ans记录最后一个单词的长度
for(int i = len-1 ; i >= 0 ; i --) {
if(s[i] == ' ') continue; //如果从后面读取的数组元素是空格,则跳过,继续读取下一个
while(s[i-ans] != ' '&&i-ans >= 0) {
ans++;
}
return ans;
}
return ans;
}
};
解法二:
class Solution {
public:
int lengthOfLastWord(string s) {
int n = s.size();
int p = 0;
for(int i = n-1;i > -1;--i){
if(s[i] != ' '){
p = i-1;
while(s[p] != ' ' && p > -1) p--;
return i-p;
}
}
return 0;
}
};
两种算法思路差不多,写法不同而已。