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

力扣第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 spaceswhile (i >= 0 && s[i] == ' ') {i--;}// Step 2: Count the length of the last wordwhile (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.lryc.cn/news/488709.html

相关文章:

  • 【Maven】Nexus几个仓库的介绍
  • SSH免密登陆
  • 【Linux】Namespace
  • SQLite 和 MySQL语法区别
  • 基于BERT的命名体识别(NER)
  • 华为云鸿蒙应用入门级开发者认证考试题库(理论题和实验题)
  • SpringBoot+React养老院管理系统 附带详细运行指导视频
  • 使用element-plus el-table中使用el-image层级冲突table表格会覆盖预览的图片等问题
  • python读取Oracle库并生成API返回Json格式
  • 音视频入门基础:MPEG2-TS专题(5)——FFmpeg源码中,判断某文件是否为TS文件的实现
  • 每天10个vue面试题(九)
  • Jenkins的环境部署
  • 八、鸿蒙开发-网络请求、应用级状态管理
  • 经验笔记:Git 中的远程仓库链接及上下游关系管理
  • Paint 学习笔记
  • Jenkins修改LOGO
  • kafka是如何做到高效读写
  • Intern大模型训练营(九):XTuner 微调实践微调
  • 从一次java.io.StreamCorruptedException: invalid stream header: 48656C6C 错误中学到的调试思路
  • 树莓派的发展历史
  • K8S containerd拉取harbor镜像
  • Ubuntu 环境下通过 Apt-get 安装软件
  • vue使用List.forEach遍历集合元素
  • ROM修改进阶教程------安卓14去除修改系统应用后导致的卡logo验证步骤 适用安卓13 14 安卓15可借鉴参考
  • 苹果macbook,MacOS 11,12,13,14,15 跳过监管锁(配置锁)
  • 【YOLOv8】安卓端部署-2-项目实战
  • 第二十四章 Spring之源码阅读——AOP篇
  • Linux配置MySQL自动备份
  • qt 之 QDockWidget设置不可拖动
  • 【Java知识】Java性能测试工具JMeter