给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。
单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
示例 1:
输入:s = “Hello World”
输出:5
示例 2:
输入:s = " fly me to the moon "
输出:4
示例 3:
输入:s = “luffy is still joyboy”
输出:6
思路:见代码
public int lengthOfLastWord(String s) {
//去首尾空格
String trim = s.trim();
//从尾到头遍历
for (int i = trim.length()-1; i >=0; i--) {
//第一次遇到空格时返回下标
if (trim.charAt(i)==' '){
return trim.length()-i-1;
}
}
return trim.length();
}
public int lengthOfLastWord1(String s) {
//j
String trim = s.trim();
return trim.length() - trim.lastIndexOf(" ") - 1;
}
public int lengthOfLastWord2(String s) {
//双指针
int i = s.length() - 1;
//第一个指针移动到单词尾部
while (i >= 0 && s.charAt(i) == ' ') {
i--;
}
//将第二个指针初始化为单词的尾部
int j = i;
//第二个指针移动到单词头部的前一个
while (j >= 0 && s.charAt(j) != ' ') {
j--;
}
//返回单词的长度
return i - j;
}