LeetCode 58 最后一个单词的长度

LeetCode58 最后一个单词的长度

题目描述

给定一个仅包含大小写字母和空格 ' ' 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。

如果不存在最后一个单词,请返回 0 。

说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串

样例

输入: "Hello World"
输出: 5

算法分析

  • 后往前找,找到第一个不是空字符串的位置k,若k == -1,表示整个字符串都是空,返回0
  • 在从k往前找,找到为' '为止
  • 返回 k - idx;

时间复杂度

\(O(n)\)

Java代码

class Solution {
    public int lengthOfLastWord(String s) {
        int k = s.length() - 1;
        while(k >= 0 && s.charAt(k) == ' ') k--;
        if(k == -1) return 0;
        int idx = k;
        while( idx >= 0 && s.charAt(idx) !=' ') idx--;

        return k - idx;
    }
}

上一篇:2021年G1工业锅炉司炉考试平台及G1工业锅炉司炉模拟试题


下一篇:58