问题描述
这是 LeetCode 上的 58. 最后一个单词的长度,难度为 简单。
关键词:
字符串、字符串遍历
给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。
单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
示例 1:
输入:s = "Hello World"
输出:5
示例 2:
输入:s = " fly me to the moon "
输出:4
示例 3:
输入:s = "luffy is still joyboy"
输出:6
提示:
1 <= s.length <= 104s仅有英文字母和空格' '组成s中至少存在一个单词
题解
这个题目就是考察基础的字符串遍历问题,题目中给出的提示中表示至少有一个单词,且入参只有英文字母和空格。想要获取字符串的最后一个单词,就是 从后向前遍历 这个字符串,最后一个单词后面的空格不管,遍历到单词的前面是空格就结束。
class Solution {
public int lengthOfLastWord(String s) {
int len = s.length();
int ans = 0;
for (int i = len-1; i >= 0; i--) {
if (s.charAt(i) == ' ') {
if (ans == 0) {
// 如果单词的后面有空格,跳过不计数
continue;
}
// 遍历到单词前面的空格就跳出计数
break;
}
++ans;
}
// 直接遍历到最后或者跳出的循环
return ans;
}
}
引用
我的 github 仓库已经同步建立,github.com/haonange131…