1.最后一个单词的长度
给定一个仅包含大小写字母和空格 ' ' 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。
如果不存在最后一个单词,请返回 0 。
说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。
示例:
输入: "Hello World"
输出: 5
2.解题思路
这个题吧,就是读起来费劲,感觉评论里还是有不少人读不顺的,但是做起来思路还是非常简单的。
就是把字符串s通过‘ ’分隔开,然后输出最后一个字符串的长度。如果只有一个字符串就返回唯一字符串长度。但需要注意的是,如果你的s="a b ",b后边还有一个空格,这个字符串的最后一个字符串是“b”。
我就用split方法把s分隔开,然后求了最后一个单词的长度。
class Solution {
public int lengthOfLastWord(String s) {
String[] spl=s.split(" ");
int len=spl.length;
if(len>0)
return spl[len-1].length();
else return 0;
}
}
这个方法所花费的时间比较高。
还看到了另外的解法,没有用split方法,是自己手动分割的,既然是要求最后一个字符串,那就从最后一个字符开始遍历,遇到的第一个‘ ’空格,说明是最后一个单词与倒数第二个单词的分界。返回length就行了。
class Solution {
public int lengthOfLastWord(String s) {
int length = 0;
for (int i = s.length() - 1; i >= 0; i--) {
if (s.charAt(i) != ' ') {
length++;
//防止最后一个单词是空格
} else if (length != 0) {
return length;
}
}
return length;
}
}
3.知识点