java简单算法:最后一个单词的长度

问题

  • 给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。
    单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。

解决

// 将字符串划分为组成单词的小字符串
// 遇到空格就分
//返回最后一个单词长度

//反向遍历:利用倒序的方式进行查询
class Solution {
    public int lengthOfLastWord(String s) {
        int en=s.length()-1;
        while(s.charAt(en)==' '){           //将符串移到最后一个单词的最后一个字母位置,注意,这里只能用'',不能用"",因为前者是字符,后者是字符串
            en--; 
        }
        int co=0;
        while(en>=0&&s.charAt(en)!=' '){   //从最后一个字母开始计数,获得最后一个单词长度
            co++;
            en--;
        }
        return co;        
    }
}

//第二种(利用api),其实想法差不多
class Solution {
    public int lengthOfLastWord(String s) {
        s = s.trim();                   //只去除"头尾"空白
        return s.length() - s.lastIndexOf(" ") - 1;  // lastIndexOf(String str): 返回指定子字符串在此字符串中最右边出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
    }
}

总结

posted @ 2022-07-02 19:52  new_monkey  阅读(364)  评论(0)    收藏  举报