leetcode-58-最后一个单词的长度
[博客链接]
[题目链接]
[github地址]
[题目描述]
给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。
单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
示例 1:
输入:s = "Hello World"
输出:5
示例 2:
输入:s = " fly me to the moon "
输出:4
示例 3:
输入:s = "luffy is still joyboy"
输出:6
思路一:原生函数
- java原生函数split就可以解
public int lengthOfLastWord(String s) {
return s.split(" ")[s.split(" ").length - 1].length();
}
- 时间复杂度:O()
- 空间复杂度:O()
思路二:双指针
- 快慢指针从后往前扫描即可
- 代码我就不写了用的三叶的代码
public int lengthOfLastWord(String s) {
int n = s.length();
int j = n - 1;
while (j >= 0 && s.charAt(j) == ' ') j--;
int i = j;
while (i >= 0 && s.charAt(i) != ' ') i--;
return j - i;
}
- 时间复杂度:O()
- 空间复杂度:O()