今天看到个字符串的简单题,通过率才34.8%,于是想试一下~
题目链接
https://leetcode-cn.com/problems/length-of-last-word
题目
给你一个字符串
s
,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
示例
示例 1:
输入:s = "Hello World"
输出:5示例 2:
输入:s = " fly me to the moon "
输出:4示例 3:
输入:s = "luffy is still joyboy"
输出:6
提示
s
仅有英文字母和空格' '
组成s
中至少存在一个单词
思路
由于找的是最后一个单词的长度,所以从字符串最后面往前面遍历。由于最后一个单词后面可能还有空格,先通过一个while循环过滤空格,然后就是字符串了,直到找到下一个空格或者遍历结束(整个字符串只有一个单词的情况),就遍历完了最后一个单词。 两分钟一遍AC通过~
C++ Code
class Solution {
public:
int lengthOfLastWord(string s) {
int n=s.size();
int i=n-1;
while(s[i]==' ')
{
i--;
}
int j=i;
while(j!=0&&s[j-1]!=' ')
{
j--;
}
return i-j+1;
}
};
结果