LintCode - 最后一个单词的长度(普通)

版权声明:本文为博主原创文章,未经博主允许不得转载。

难度:容易
要求:

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

样例
给定 s = "Hello World",返回 5。

思路:
注意可能出现字符串形式:
1."b a " 空格隔开
2." b a" 空格隔开
3."a" 全是单词
4." " 全是空格

 /**
     * "b a "   "a"  "  "
     * 
     * @param s A string
     * @return the length of last word
     */
    public int lengthOfLastWord(String s) {
        int len = s.length();
        int last = -1;//记录最后一个字母出现的位置
        
        for(int i = len - 1; i >= 0; i--){
            char c = s.charAt(i);
            
            if(last < 0){
                if(' ' - c != 0){
                    last = i;
                }
            }
            
            if(last >= 0 && ' ' - c == 0){//计算单词位置
                return last - i;
            }
        }
        
        //如果都是空格 '    '
        if(last < 0){
            return 0;
        }
        
        return len;
    }

你可能感兴趣的:(LintCode - 最后一个单词的长度(普通))