leetcode每日刷题之字符串篇(一)58.最后一个单词的长度
程序员文章站
2022-04-05 11:46:21
...
前言
今天做的字符串的题目一共做了四个,然后有一个让我印象深刻的题目,下面给大家分享一下这个题
一、题目描述
二、题目解析
当拿到这道题的时候,一不小心理解错误了,被官方那个滚动显示所迷惑,误以为,从左开始遍历的时候找出最右边的那个单词,从右开始遍历的时候找出最左边的那个单词。虽然这样也不难做,但是我的时间消耗太多了,看一下第一次提交情况
消耗两毫秒,然后超过百分之10的用户。思考之后感觉速度不应该这么慢,然后我想该不会是找出最左边的单词吧,然后我就从右边开始找,找出右边的第一个单词。果不其然,这回就百分百了。
注:需要考虑尾部空格的情况
下面和大家分享一下我的做题思路吧,首先排除尾部空格,此时不用计数,只需移动指针即可,当指针移动到非空格字符上时,开始计数,直到下一个空格,计数结束,返回计数。
总的来说这个题目又让我有了一些新的想法,对我的帮助还挺大。
三、题目代码
class Solution {
public int lengthOfLastWord(String s) {
int i = s.length()-1;
int count = 0 ;
//去除尾部的空格
while(i>=0&&s.charAt(i)==' '){
i--;
}
//获得最后一个单词的长度
while(i>=0 && s.charAt(i)!=' '){
count++;
i--;
}
return count;
}
}
上一篇: PHP高效生成一个不重复随机数
下一篇: Python中如何生成随机密码的方法分享