58. Length of Last Word
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
解法主要有两步:
1 从后往前遍历,确定第一个非’ '字符位置
2 继续向前遍历找到最后一个词的长度
solution 1:
public int lengthOfLastWord(String s) {
if (s == null || s.length() == 0) return 0;
int len = s.length();
int Longlen = 0;
int j = len-1;
while (j >=0 && s.charAt(j) == ' ') j--;
while (j >=0) {
if (s.charAt(j) == ' ')
return Longlen;
Longlen++;
j--;
}
return Longlen;
}
solution 2:
public int lengthOfLastWord2(String s) {
String str = s.trim();
int leng = 0;
for (int i = str.length()-1; i >= 0; i--) {
if (str.charAt(i) != ' ') leng++;
else break;
}
return leng;
}
solution 3
public int lengthOfLastWord3(String s) {
String[] words = s.split(" ");
if (words.length==0) return 0;
else return words[words.length-1].length();
}
solution 4
public int lengthOfLastWord4(String s) {
return s.trim().length() - s.trim().lastIndexOf(" ") - 1;
}