422. 最后一个单词的长度

题目

给定一个字符串, 包含大小写字母、空格' ',请返回其最后一个单词的长度。

如果不存在最后一个单词,请返回 0 。

分析

先不考虑特殊值,从后往前找,首先跳过尾部所有的空格字符,找到字符串中最后一位字母,记下坐标last,接着从last往前找空格,只要找到了空格i,那么last - i就是最后一个单词的长度。

也可能找不到空格,说明这个单词是从头到last都是字母,那么单词的长度就应该是last + 1。

然后再考虑蛋疼的null,以及单词数小于1的情况。

代码


public class Solution {
    /**
     * @param s: A string
     * @return: the length of last word
     */
    public int lengthOfLastWord(String s) {
        // write your code here
        if (s == null || s.length() < 1) return 0;
        int last = s.length() - 1;
        while(last >= 0 && s.charAt(last) == ' ') {
            last--;
        }
        
        for(int i=last-1; i >= 0; i--) {
            if(s.charAt(i) == ' ') {
                return last - i;
            }
        }
        return last + 1;
    }
}
Show Comments

Get the latest posts delivered right to your inbox.