给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。
单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
示例 1:
输入:s = "Hello World"
输出:5
解释:最后一个单词是“World”,长度为5。
思路:从最后一个字母,反向遍历字符串,遇到第一个空格,返回遍历次数,就是最后一个单词的长度。
题解1:核心代码模式
class Solution {
public:
int lengthOfLastWord(string s) {
int index = s.size() - 1;
while(s[index] == ' ') {
index--;
}
int wordLength = 0;
while(index >= 0 && s[index] != ' '){
wordLength++;
index--;
}
return wordLength;
}
};
题解2:ACM模式
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
getline(cin, s);
int ans = 0;
int i = s.size() - 1;
while(s[i] == ' '){
i--;
}
while(i >= 0 && s[i] != ' '){
i--;
ans++;
}
cout << ans << endl;
return 0;
}
368

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



