LeetCode力扣每日一题(Java):58、最后一个单词的长度

2023-12-13 06:19:22

一、题目

二、解题思路

1、我的思路

先将字符串转换成字符数组

由于我们需要获取最后一个单词的长度,所以我们从后往前遍历字符数组

我们还需判断所遍历的字符是不是字母,即判断每个字符对应的ASCII值即可,用计数器count来储存单词长度

当遍历到第一个字母时,将flag的值从flase置为true,之后的循环中,若遍历到字母,则count++,若遍历到的字符不是字母,则直接结束循环,返回count

char[] cs = s.toCharArray();
        int i = cs.length - 1;
        int count = 0;
        boolean flag = false;
        while (i>=0) {
            if ((cs[i] >= 65 && cs[i] <= 90) || (cs[i] >= 97 && cs[i] <= 122)) {
                count++;
                flag = true;
            }else{
                if(flag){
                    break;
                }
            }
            i--;
        }
        return count;

2、官方题解

官方题解采用的也是反向遍历的操作,和我的思路是一样的,只是代码稍有不同

class Solution {
    public int lengthOfLastWord(String s) {
        int index = s.length() - 1;
        while (s.charAt(index) == ' ') {
            index--;
        }
        int wordLength = 0;
        while (index >= 0 && s.charAt(index) != ' ') {
            wordLength++;
            index--;
        }
        return wordLength;
    }
}

作者:力扣官方题解
链接:https://leetcode.cn/problems/length-of-last-word/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

文章来源:https://blog.csdn.net/lbcbjtlhmjq/article/details/134940132
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。