最后一个单词的长度
- 给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。
单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
示例 1:
输入:s = “Hello World”
输出:5
解释:最后一个单词是“World”,长度为 5。
解题思路
- 要找到字符串中最后一个单词的长度,可以从字符串的末尾开始向前遍历,
- 直到遇到第一个非空格字符,然后继续向前遍历,直到遇到第一个空格字符或者字符串的开头。
- 在遍历的过程中统计单词的长度。
java实现
public class LastWordLength {
public int lengthOfLastWord(String s) {
int length = 0;
int index = s.length() - 1;
// 跳过末尾的空格字符
while (index >= 0 && s.charAt(index) == ' ') {
index--;
}
// 统计最后一个单词的长度
while (index >= 0 && s.charAt(index) != ' ') {
length++;
index--;
}
return length;
}
public static void main(String[] args) {
LastWordLength lastWordLength = new LastWordLength();
String s1 = "Hello World ";
System.out.println("Last Word Length: " + lastWordLength.lengthOfLastWord(s1)); // Expected: 5
}
}
时间空间复杂度
- 时间复杂度: 遍历字符串的时间复杂度为 O(n),其中 n 是字符串的长度。
- 空间复杂度: 使用了常数级的额外空间,空间复杂度为 O(1)。