千家信息网

C++如何求末尾单词的长度

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍"C++如何求末尾单词的长度"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"C++如何求末尾单词的长度"文章能帮助大家解决问题。Length o
千家信息网最后更新 2026年11月01日C++如何求末尾单词的长度

这篇文章主要介绍"C++如何求末尾单词的长度"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"C++如何求末尾单词的长度"文章能帮助大家解决问题。

Length of Last Word 求末尾单词的长度

Given a string s consists of upper/lower-case alphabets and empty space characters " ", return the length of last word in the string.

If the last word does not exist, return 0.

Note: A word is defined as a character sequence consists of non-space characters only.

Example:

Input: "Hello World"
Output: 5

这道题难度不是很大。先对输入字符串做预处理,去掉开头和结尾的空格,然后用一个计数器来累计非空格的字符串的长度,遇到空格则将计数器清零,参见代码如下:

解法一:

class Solution {public:    int lengthOfLastWord(string s) {        int left = 0, right = (int)s.size() - 1, res = 0;        while (s[left] == " ") ++left;        while (s[right] == " ") --right;        for (int i = left; i <= right; ++i) {            if (s[i] == " ") res = 0;            else ++res;        }        return res;    }};

昨晚睡觉前又想到了一种解法,其实不用上面那么复杂的,这里关心的主要是非空格的字符,那么实际上在遍历字符串的时候,如果遇到非空格的字符,只需要判断其前面一个位置的字符是否为空格,如果是的话,那么当前肯定是一个新词的开始,将计数器重置为1,如果不是的话,说明正在统计一个词的长度,计数器自增1即可。但是需要注意的是,当 i=0 的时候,无法访问前一个字符,所以这种情况要特别判断一下,归为计数器自增1那类,参见代码如下:

解法二:

class Solution {public:    int lengthOfLastWord(string s) {        int res = 0;        for (int i = 0; i < s.size(); ++i) {            if (s[i] != " ") {                if (i != 0 && s[i - 1] == " ") res = 1;                else ++res;            }        }        return res;    }};

下面这种方法是第一种解法的优化版本,由于只关于最后一个单词的长度,所以开头有多少个空格起始并不需要在意,从字符串末尾开始,先将末尾的空格都去掉,然后开始找非空格的字符的长度即可,参见代码如下:

解法三:

class Solution {public:    int lengthOfLastWord(string s) {        int right = s.size() - 1, res = 0;        while (right >= 0 && s[right] == " ") --right;        while (right >= 0 && s[right] != " " ) {            --right;             ++res;        }        return res;    }};

关于"C++如何求末尾单词的长度"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

字符 空格 长度 末尾 单词 解法 计数器 字符串 C++ 代码 知识 实际 开头 方法 时候 行业 不同 复杂 实用 很大 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网金融科技 互联网科技股 博彦科技互联网金融 南京欣网互联网络科技有限公司 上海卓越科技互联网 厦门中拓互联网络科技有限公司 互联网科技英文 致骋互联网科技 融势互联网科技 睿民互联网科技 成都仁贤领冠互联网科技有限公司 富国互联网科技创新基金 华服互联网科技官网 深圳市罗太互联网科技有限公司 中天科技中国工业互联网 卡尔迅互联网科技有限公司 福建互联网展示科技馆设计 银川新华互联网科技学校是国营吗 同城互联网络科技 东风日产互联网科技公司叫什么 亿人帮互联网科技有限公司 互联网最新的科技有限公司 有马互联网科技 杭州互联网科技公司 互联网巨头投资的硬核科技 须眉科技是互联网公司吗 互联网企业和科技型企业 崇明区互联网教育科技诚信经营 科技互联网公司两年变化 河南商务圈互联网科技有限公司
0