题目
Given a string s consists of upper/lower-case alphabets and empty space characters ' '
, return the length of last word in the string.
If the last word does not exist, return 0.
Note: A word is defined as a character sequence consists of non-space characters only.
For example,
Given s = "Hello World"
,
return 5
.
标签:string
题意
给定一个由空格间隔单词的字符串,找到字符串中最后一个单词的长度。若没有最后一个单词则返回0.
解题思路
我的思路过于简单,就是将字符串split成数组,然后获取数组最后一个元素的长度。写的麻烦速度还很慢。看了discuss中的大神的代码,只用了三行,速度还接近0ms。
思路是:获取到字符串中最后一个空格的位置,然后该位置+1,即为最后一个单词之前所有字符的长度,用总长度减去所有字符的长度就是最后一个单词的长度。
代码
我的垃圾代码:
public class Solution {
public int lengthOfLastWord(String s) {
String[] arr = s.split(" ");
if (arr.length == 0) {
return 0;
}
return arr[arr.length - 1].toCharArray().length;
}
}
dicusss中的代码:
public class Solution {
public int lengthOfLastWord(String s) {
s = s.trim();
int lastIndex = s.lastIndexOf(' ') + 1;
return s.length() - lastIndex;
}
}