欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

leetcode每日刷题之字符串篇(一)58.最后一个单词的长度

程序员文章站 2022-04-05 11:46:21
...


前言

今天做的字符串的题目一共做了四个,然后有一个让我印象深刻的题目,下面给大家分享一下这个题


一、题目描述

leetcode每日刷题之字符串篇(一)58.最后一个单词的长度

二、题目解析

当拿到这道题的时候,一不小心理解错误了,被官方那个滚动显示所迷惑,误以为,从左开始遍历的时候找出最右边的那个单词,从右开始遍历的时候找出最左边的那个单词。虽然这样也不难做,但是我的时间消耗太多了,看一下第一次提交情况
leetcode每日刷题之字符串篇(一)58.最后一个单词的长度
消耗两毫秒,然后超过百分之10的用户。思考之后感觉速度不应该这么慢,然后我想该不会是找出最左边的单词吧,然后我就从右边开始找,找出右边的第一个单词。果不其然,这回就百分百了。
注:需要考虑尾部空格的情况
leetcode每日刷题之字符串篇(一)58.最后一个单词的长度

下面和大家分享一下我的做题思路吧,首先排除尾部空格,此时不用计数,只需移动指针即可,当指针移动到非空格字符上时,开始计数,直到下一个空格,计数结束,返回计数。
总的来说这个题目又让我有了一些新的想法,对我的帮助还挺大。

三、题目代码

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;
    }
}