(LeetCode 面试经典 150 题 ) 58. 最后一个单词的长度 (字符串)

题目:58. 最后一个单词的长度


思路:字符串处理,时间复杂度0(n)。

直接从最后面开始遍历,找到第一个不为空格的字符s[i]!=' ',然后再从j=i-1开始找到第一个为空格的字符s[j]==' ',或 j == -1时停下。i - j 即答案

C++版本:

cpp 复制代码
class Solution {
public:
    int lengthOfLastWord(string s) {
        int i=s.size()-1;
        while(s[i]==' ') i--;
        int j=i-1;
        while(j>=0&&s[j]!=' ') j--;
        return i-j;
    }
};

JAVA版本:

java 复制代码
class Solution {
    public int lengthOfLastWord(String s) {
        int i=s.length()-1;
        char[] c=s.toCharArray();
        while(c[i]==' ') i--;
        int j=i-1;
        while(j>=0&&c[j]!=' ') j--;
        return i-j;
    }
}

Go版本:

go 复制代码
func lengthOfLastWord(s string) int {
    i:=len(s)-1
    for s[i]==' ' {
        i--
    }
    j:=i-1
    for j>=0&&s[j]!=' ' {
        j--
    }
    return i-j
}
相关推荐
我命由我123451 小时前
Kotlin 数据容器 - List(List 概述、创建 List、List 核心特性、List 元素访问、List 遍历)
java·开发语言·jvm·windows·java-ee·kotlin·list
liulilittle1 小时前
C++ TAP(基于任务的异步编程模式)
服务器·开发语言·网络·c++·分布式·任务·tap
励志要当大牛的小白菜2 小时前
ART配对软件使用
开发语言·c++·qt·算法
qq_513970442 小时前
力扣 hot100 Day56
算法·leetcode
武子康3 小时前
Java-80 深入浅出 RPC Dubbo 动态服务降级:从雪崩防护到配置中心秒级生效
java·分布式·后端·spring·微服务·rpc·dubbo
PAK向日葵3 小时前
【算法导论】如何攻克一道Hard难度的LeetCode题?以「寻找两个正序数组的中位数」为例
c++·算法·面试
zhuyasen5 小时前
Go 分布式任务和定时任务太难?sasynq 让异步任务从未如此简单
后端·go
爱喝矿泉水的猛男5 小时前
非定长滑动窗口(持续更新)
算法·leetcode·职场和发展
YuTaoShao5 小时前
【LeetCode 热题 100】131. 分割回文串——回溯
java·算法·leetcode·深度优先
源码_V_saaskw6 小时前
JAVA图文短视频交友+自营商城系统源码支持小程序+Android+IOS+H5
java·微信小程序·小程序·uni-app·音视频·交友