题目:
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.
解决方案:
public class Solution {
public int lengthOfLastWord(String s) {
//从后向前(从右向左)看
if(s == null || s.length()==0)
return 0;
int len = 0;
int i = s.length()-1;
//先找到最后一个词,把整个字符串最后的空格全部忽略
while(i>=0 && s.charAt(i)==' ')
i--;
//找到最后一个词,从右往左判断长度
while(i>=0 && s.charAt(i)!=' '){
len ++;
i--;
}
return len;
}
}
总结:
这道题受之前一道题的影响,上来就想用java的自带函数lastIndexOf来做,结果做了一会做错了,写了好多代码,根据出错的提示得知要判断的东西挺多,然后就放弃了,开始换思路,这种思路就是从后往前坐,这个方法很简单,只需要判断一个大的问题就好了,那就是把最后的空格都忽略。
有点感觉了!加油!