LengthofLastWord

problem

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.

Example:

1
2
3
> Input: "Hello World"
> Output: 5
>

key

该方法调用了java的String.split(regex)所以在复杂度上回很高,大概仅仅beat了6%的玩家,但解决很快,正确的算法思维就倒序遍历,最后开始查往前,最后一个非空格查到空格结束

solution

1
2
3
4
5
6
7
8
9
10
11
12
//7ms
public int lengthOfLastWord(String s) {
if(s.length()<=0)return 0;
String[] tmp = s.split("\\s");
int lastIndex = tmp.length-1;
if(lastIndex<0) {
return 0;
}else {
return tmp[lastIndex].length();
}

}

perfect

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Solution {
public int lengthOfLastWord(String s) {
int n = s.length() - 1;
int length = 0;
for(int i = n; i >= 0; i--) {
if(length == 0) {
if(s.charAt(i) == ' ') {
continue;
}else {
length++;
}
}else {
if(s.charAt(i) == ' ') {
break;
}
else {
length++;
}
}
}
return length;
}
}