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:
Input: "Hello World" Output: 5
key
该方法调用了java的String.split(regex)所以在复杂度上回很高,大概仅仅beat了6%的玩家,但解决很快,正确的算法思维就倒序遍历,最后开始查往前,最后一个非空格查到空格结束
solution
//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
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;
}
}
Java中获取字符串最后一个单词长度
本文介绍了一种使用Java来获取字符串中最后一个单词长度的方法。通过两种不同的实现方式对比,一种利用了Java内置的split方法,而另一种采用逆向遍历来实现。后者效率更高,避免了不必要的字符串分割。
407

被折叠的 条评论
为什么被折叠?



