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.
要求是很容易的,但是在提交后才发现处理的情况很多,字面意思可能理解还不太到位。例如对于“a ”,和” a”,希望的输出都是1,这就考验算法对于边界处理的考虑了。
Solution:
class Solution {
public int lengthOfLastWord(String s) {
// you have use trim to tackle the case " a" and "a " whose output should be 1 other than 0
String trimed = s.trim();
if (trimed.length() == 0) {
return 0;
}
int count = 0;
for (int lastIndex = trimed.length() - 1; lastIndex >= 0; lastIndex--) {
char c = trimed.charAt(lastIndex);
if (Character.isSpaceChar(c))
break;
count++;
}
return count;
}
}