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
.
思路:word is: "*word*" *是空格。
从后往前搜索,遇见空格继续渐进,如果再遇见就返回count。这个算法比较牛逼。
public class Solution {
public int lengthOfLastWord(String s) {
if(s.length()==0) return 0;
int count = 0;
char[] array = s.toCharArray();
for( int i = s.length()-1; i>=0; i--){
if(array[i]==' '){
if(count == 0){ continue;
}else{ return count;
}
}else{
count++;
}
}
return count;
}
}
public class Solution {
public int lengthOfLastWord(String s) {
if(s == null || s.length()==0) return 0;
char[] chars = s.toCharArray();
int count = 0;
boolean startwords = false;
for(int i=chars.length-1; i>=0; i--){
if(chars[i]==' ' && !startwords ){
continue;
}else if(chars[i] == ' ' && startwords)
return count;
else{
count++;
startwords = true;
}
}
return count;
}
}
方法2: splitpublic class Solution {
public int lengthOfLastWord(String s) {
if(s == null){
return 0;
}
String[] strs = s.split(" ");
if(strs.length!=0){
String last = strs[strs.length -1];
return last.length();
}else{
return 0;
}
}
}
public class Solution {
public int lengthOfLastWord(String s) {
if(s == null || s.length() == 0) return 0;
String[] strs = s.split(" ");
int res = 0;
for(int i=strs.length-1; i>=0; i--){
if(!strs[i].equals("")){
res = strs[i].length();
break;
}
}
return res;
}
}