(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
}
相关推荐
itzixiao1 分钟前
L1-051 打折(5分)[java][python]
java·python·算法
それども16 分钟前
Spring Bean 注入的优先级顺序
java·数据库·sql·spring
ID_1800790547318 分钟前
Python 实现京东商品详情 API 数据准确性校验(极简可直接用)
java·前端·python
贾斯汀玛尔斯18 分钟前
每天学一个算法--Aho–Corasick 自动机
java·linux·算法
re林檎22 分钟前
八大排序算法(C++实现)
c++·算法·排序算法
淘气包海鸟23 分钟前
雷达度量衡量
人工智能·算法·机器学习·信息与通信
睡觉就不困鸭23 分钟前
第12天 多数元素
算法·哈希算法·散列表
此生只爱蛋24 分钟前
【vscode环境配置心得】C++版
c++·ide·vscode
LF男男29 分钟前
Action- C# 内置的委托类型
java·开发语言·c#
记录无知岁月29 分钟前
【C/C++】头文件包含问题分析
c语言·开发语言·c++