LeetCode58. 最后一个单词的长度

LeetCode58. 最后一个单词的长度

题目描述

/**
     * 
     * 给你一个字符串 s,由若干单词组成,单词之间用空格隔开。返回字符串中最后一个单词的长度。
     * 如果不存在最后一个单词,请返回 0 。
     *
     * 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
     *
     */

思路分析

  1. 给定一个字符串,寻找最后一个子串,返回其长度,题目比较简单,注意考虑在字符串末尾有空格的情况
  2. 如果有空格,则需要先去除空格,然后再定义一个变量记录最后一个字符串的初始索引
  3. 返回字符串的长度即可
  4. 源码及分析见下

源码及分析

/**
     * @param s 原始字符串
     * @return 返回最后一个子串
     */
    public int lengthOfLastWord(String s) {
        //定义end保存最后一个非空字符串的最后一个字符索引,默认为len - 1,考虑最后一个字符串为空的情况
        int end = s.length() - 1;
        //循环移除最后的空串
        while (end >= 0 && s.charAt(end) == ' '){
            end--;
        }
        //判断字符串是否为空串
        if (end < 0){
            return 0;
        }
        //定义start保存最后一个非空字符串的第一个字符索引
        int start = end;
        //循环寻找start位置
        while (start >= 0 && s.charAt(start) != ' '){
            start--;
        }
        //循环结束时start已经指向最后一个字符串的第一个字符索引
        return end - start;
    }
posted @ 2021-06-02 10:05  mx_info  阅读(38)  评论(0)    收藏  举报