1、题目描述
给定一个仅包含大小写字母和空格 ' ' 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。
如果不存在最后一个单词,请返回 0 。
说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。
2、示例
输入: "Hello World"
输出: 5
3、题解
基本思想:字符串从右往左遍历,去掉末尾空格,再计数出现空格前的非空格字符个数,就是最后一个单词长度。
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
class Solution {
public:
int lengthOfLastWord(string s) {
//基本思想:字符串从右往左遍历,去掉末尾空格,再计数出现空格前的非空格字符个数,就是最后一个单词长度
int res = 0, i = s.length() - 1;
while (i >= 0 && s[i] == ' ')
i--;
while (i >= 0 && s[i--] != ' ')
res++;
return res;
}
};
int main()
{
Solution solute;
string s = " hello world ";
cout << solute.lengthOfLastWord(s) << endl;
return 0;
}