欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > c/c++ >内容正文

c/c++

leetcode 58. Length of Last Word 题解【C++/Java/Python/JS】

发布时间:2025/4/5 c/c++ 35 豆豆
生活随笔 收集整理的这篇文章主要介绍了 leetcode 58. Length of Last Word 题解【C++/Java/Python/JS】 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

58. 最后一个单词的长度 58. Length of Last Word

题目:

给定一个仅包含大小写字母和空格' ' 的字符串,返回其最后一个单词的长度。

如果不存在最后一个单词,请返回0 。

说明:一个单词是指由字母组成,但不包含任何空格的字符串。

示例:

输入: "Hello World" 输出: 5

题解:

主要思路是从右向左遍历。先找到第一个非空格字符,作为最后一个单词的结束字符,开始计数cnt,继续往左遍历,找到第一个空格,即单词的开始位置,计数结束,返回cnt。

技巧:

从右往左遍历。

C++
class Solution { public:int lengthOfLastWord(string s) {int n = s.length();int i = n - 1;while(i >= 0 && s[i] == ' ') { // 寻找第一个非空格字符i--;}if(i < 0) {return 0;}int cnt = 0;while(i >= 0 && s[i] != ' ') {// 统计非空格字符的长度,即为最后一个单词的长度cnt++;i--;}return cnt;} }; 复制代码
Java
class Solution {public int lengthOfLastWord(String s) {int n = s.length();int i = n - 1;while(i >= 0 && s.charAt(i) == ' ') {// 从右往左寻找第一个非空格字符i--;}if(i < 0) {return 0;}int cnt = 0;while(i >= 0 && s.charAt(i) != ' ') {// 统计非空格字符即为最后一个单词的长度cnt++;i--;}return cnt;} } 复制代码
Python
class Solution(object):def lengthOfLastWord(self, s):""":type s: str:rtype: int"""n = len(s)i = n - 1while i >= 0 and s[i] == ' ': # 从右往左找第一个非空格字符i -= 1if i < 0:return 0cnt = 0while i >= 0 and s[i] != ' ': # 统计连续非空格字符的数量,即为最后一个单词的长度。i -= 1cnt += 1return cnt 复制代码
JavaScript
/*** @param {string} s* @return {number}*/ var lengthOfLastWord = function(s) {var n = s.length;var i = n - 1;while (i >= 0 && s[i] == ' ') {//从右往左找第一个非空格字符,即最后一个单词的结束字符i -= 1;}var cnt = 0;while(i >= 0 && s[i] != ' ') {//从右往左找第一个空格符号,即最后一个单词的开始位置i -= 1;cnt += 1;}return cnt; }; 复制代码

总结

以上是生活随笔为你收集整理的leetcode 58. Length of Last Word 题解【C++/Java/Python/JS】的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。