当前位置: 首页 > article >正文

力扣第58题:最后一个单词的长度

力扣第58题是 最后一个单词的长度,具体要求是给定一个字符串,找到其最后一个单词的长度。


题目描述

输入:一个由字母和空格组成的字符串 s,可以包含大小写字母和若干空格。

输出:最后一个单词的长度。

注意

  1. 单词由字母组成,且与空格分隔。
  2. 字符串可能包含尾部空格。

解决思路

我们可以从后往前遍历字符串,跳过末尾的空格,然后统计最后一个单词的长度。以下是具体步骤:

  1. 跳过末尾空格:从字符串尾部开始,找到第一个非空格字符。
  2. 统计单词长度:继续向前遍历,直到遇到空格或到达字符串开头。
  3. 返回长度

C语言代码实现

#include <stdio.h>
#include <string.h>

int lengthOfLastWord(char* s) {
    int length = 0;
    int i = strlen(s) - 1;

    // Step 1: Skip trailing spaces
    while (i >= 0 && s[i] == ' ') {
        i--;
    }

    // Step 2: Count the length of the last word
    while (i >= 0 && s[i] != ' ') {
        length++;
        i--;
    }

    return length;
}

int main() {
    char s[] = "Hello World   ";
    int result = lengthOfLastWord(s);
    printf("The length of the last word is: %d\n", result);
    return 0;
}

输入与输出

输入

s = "Hello World   "

输出

The length of the last word is: 5

代码解析

  1. 输入字符串处理
    • 使用 strlen 获取字符串长度。
    • 从字符串尾部开始跳过空格(避免尾部空格影响结果)。
  2. 统计最后一个单词的长度
    • 遍历非空格字符,同时累加长度,直到遇到空格或到达字符串开头。
  3. 返回结果:返回累积的长度。

复杂度分析

  • 时间复杂度:O(n),其中 n 是字符串的长度。我们最多遍历字符串一次。
  • 空间复杂度:O(1),仅使用了常量级额外空间。

http://www.kler.cn/a/403803.html

相关文章:

  • Android智能座舱,视频播放场景,通过多指滑屏退回桌面,闪屏问题的另一种解法
  • PHP二维数组排序算法函数
  • 14. 【.NET 8 实战--孢子记账--从单体到微服务】--简易权限--章节总结
  • 最少前缀操作问题--感受不到动态规划,怎么办怎么办
  • 蓝队技能-应急响应篇日志自动采集日志自动查看日志自动化分析Web安全内网攻防工具项目
  • 如何渲染超大表格,例如一万行数据
  • AI数字人视频小程序:引领未来互动新潮流
  • golang通用后台管理系统10(退出登录,注销token)
  • 程序里sendStringParametersAsUnicode=true的配置导致sql server cpu使用率高问题处理
  • 一、Docker 安装集
  • 脸书Facebook 多账号在同一设备登录且防关联的攻略!
  • Win11 24H2新BUG或影响30%CPU性能,修复方法在这里
  • k8s资源对象管理
  • Gin 框架中的表单处理与数据绑定
  • 第十九天 决策树与随机森林
  • Python循环请求接口
  • 高效协作:前后端合作规范与应对策略
  • 接口压力测试、性能测试工具
  • Python和MATLAB及Julia示例3D残差U-Net
  • Linux驱动开发(9):pinctrl子系统和gpio子系统--led实验
  • http响应码https的区别
  • PostgreSQL常用字符串函数与示例说明
  • 151页PDF | XX集团数字化转型SAP项目规划方案(限免下载)
  • 天地图电子地图矢量地图底图结合图像学实现风格底图地图
  • Notepad++--在开头快速添加行号
  • Codeforces Round 988 (Div. 3)