public class 最后一个单词的长度 {
public static int lengths(String s){
int j =0;
char A = 'a';
int a = 0;
boolean isWhitespace = false;
for(int i = 0;i< s.length();i++){
A = s.charAt(i);
isWhitespace = Character.isWhitespace(A);
if(isWhitespace){
a = 1;
}
if(a == 1 && s.charAt(i) != ' '){
a = 0;
j = 0;
}
if(a == 0 && s.charAt(i) != ' '){
j++;
}
}
return j;
}
先来看看第一版本的代码,想法是从前往后遍历字符串,遇到空格就标记一下,如果再遇到单词,就重新计数。问题得以解决,但运行速度很慢,想了一下可以从后往前判断,在减少判断的同时更加方便。
于是便有了第二版代码
class Solution {
public int lengthOfLastWord(String s) {
int j = 0;
char c = ' ';
int num = 0;
String a = reverse(s);
for(int i = 0;i <s.length();i++){
c = a.charAt(i);
if(c != ' '){
num = 1;
j++;
}
if(num == 1 && c ==' '){
break;
}
}
return j;
}
public static String reverse(String s) {
return new StringBuilder(s).reverse().toString();
}
}
也是从4ms快到了1ms
加油!为了更好!