LeetCode-Length of Last Word

这道题感觉挺简单,可能会出现右边有很多空格的情况,所以只需要针对是否单词开始计算进行分类就可以了。

1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution {
public int lengthOfLastWord(String s) {
int lastLen=0;
for(int i=s.length()-1;i>=0;i--){
if(s.charAt(i)!=' '){
lastLen++;
}else if(lastLen>0){
return lastLen;
}
}
return lastLen;
}
}

超过了 26.33%的人。

把 String 转换成 char[]类型以后,速度提升很大,击败了 99.6%的人。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
public int lengthOfLastWord(String s) {
int lastLen=0;
char[] sChar=s.toCharArray();
for(int i=sChar.length-1;i>=0;i--){
if(sChar[i]!=' '){
lastLen++;
}else if(lastLen>0){
return lastLen;
}
}
return lastLen;
}
}

讨论区中还有使用 Java 内置字符串方法,先去空格,再用空格切分,返回最后一个切分串的长度

1
2
3
4
5
6
7
8
9
class Solution {
public int lengthOfLastWord(String s) {
if(s.trim().length()==0){
return 0;
}
String[] str = s.split(" ");
return str[str.length-1].length();
}
}