当前位置:   article > 正文

LeetCode_字符串_简单_58.最后一个单词的长度_输入一个字符串s,由若干个单词组成,单词前后用一些空格字符隔开。返回字符串中最

输入一个字符串s,由若干个单词组成,单词前后用一些空格字符隔开。返回字符串中最

1.题目

给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。
单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。

示例 1:
输入:s = “Hello World”
输出:5

示例 2:
输入:s = " fly me to the moon "
输出:4

示例 3:
输入:s = “luffy is still joyboy”
输出:6

提示:
1 <= s.length <= 104
s 仅有英文字母和空格 ’ ’ 组成
s 中至少存在一个单词

来源:力扣(LeetCode
链接:https://leetcode-cn.com/problems/length-of-last-word

2.思路

(1)反向遍历
先使用 trim() 方法去掉字符串 s 首尾的空格,定义变量 res 来保存最后一个单词的长度(初始值为0),然后再从字符串尾开始遍历,每遇到一个非空格的字符,res 就加一,当字符串遍历结束或者遇到空格时就立即退出循环,此时 res 的值即为最后一个单词的长度,将其返回即可。

(2)调用API
本题比较简单,可以直接调用 Java 字符串中已有的 API。

3.代码实现(Java)

//思路1————反向遍历
class Solution {
	public int lengthOfLastWord(String s) {
	    int res = 0;
	    //去掉字符串s首尾的空格
	    s = s.trim();
	    //index指向最后一个单词的最后一个字母
	    int index = s.length() - 1;
	    while (index >= 0 && s.charAt(index) != ' ') {
	        //最后一个单词的长度加一
	        res++;
	        //index往前移动一个单位长度
	        index--;
	    }
	    return res;
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
//思路2————调用API
class Solution {
	public int lengthOfLastWord(String s) {
	    s = s.trim();
	    //lastIndexOf(String str):返回指定子字符串在此字符串中最右边出现处的索引
	    return s.length() - s.lastIndexOf(" ") - 1;
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/527223
推荐阅读
相关标签
  

闽ICP备14008679号