让我们一起啃算法----最后一个单词的长度

最后一个单词的长度(Length-Of-Last-Word)

题干:

给定一个仅包含大小写字母和空格 ‘ ‘ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。
如果不存在最后一个单词,请返回 0 。
说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。
示例:
  输入: “Hello World”
  输出: 5

周末总是转瞬即逝,周一的早上总是让人打不起精神,所以来一题 简单的leetcode 活络活络思维,新的一周开始啦!

解题思路

题目让我们查找字符串的最后一个单词的长度,很自然能想到的切入点:从右向左遍历字符串。

剩下的考点就是:遇到空字符串如何处理?我们引入一个变量 result 用于标记最后一个单词的长度,初始值设置为 0。

从右向左遍历字符串, 如果遇到空字符串,判断 result 是否为 0,如果为 0,则表示目前没有遇到过单词,如果 result 不为 0,则表示到了最后一个单词的左边界了( 我们是从右向左遍历的 ),返回 result 即可。仔细体会一下这个过程哦

代码实现

GO 代码实现

func lengthOfLastWord(s string) int {
    if "" == s {
        return 0
    }
    strLength := len(s)
    result := 0
    for i := strLength - 1; i >= 0; i-- {
        // 遇到空字符串
        if ' ' == s[i]  {
            // 如果 result 大于 0,则表示到了最后一个单词的左边界,返回结果
            if result >0  {
                break
            } else {
                // 如果 result 为 0,则表示目前为止没有遇到过单词,继续从右向左遍历
                continue
            }
        }
        result ++


    }
    return result
}

总结

每天进步一点点,加油!
算法教程项目,每天更新一题,点个 star 支持一下呀
github.com/wx-satellite/learning-a...

本作品采用《CC 协议》,转载必须注明作者和本文链接
三斤
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2
function lengthOfLastWord($s) {
    if ($s == '') return 0;
    $count = strlen($s);
    $max = 0;
    for ($i = $count - 1; $i >= 0; $i--) {
        if ($s[$i] == ' ' && $max > 0) return $max;
        if ($s[$i] != ' ') $max++;
    }

    return $max;
}
3年前 评论
三斤和他的喵 (楼主) 3年前

在LeetCode遇到这道题的时候,甚至怀疑是不是错了,和算法没关系一样

3年前 评论
三斤和他的喵 (楼主) 3年前
captain2021 (作者) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!