算法题---最后一个单词的长度(乐乐独记)
1、题目描述
给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个 单词的长度。 单词是指仅由字母组成、不包含任何空格字符的最大子字符串。
示例 1:
输入:s = “Hello World” 输出:5 解释:最后一个单词是“World”,长度为5。
示例 2:
输入:s = " fly me to the moon " 输出:4 解释:最后一个单词是“moon”,长度为4。
示例 3:
输入:s = “luffy is still joyboy” 输出:6 解释:最后一个单词是长度为6的“joyboy”。
2、解题思路
我们可以使用倒叙遍历的方式,当碰到第一个字母的时候开始计数,再次碰到空格的时候结束计数就可计算出最后一个单词的长度。
3、代码示例
public class L58_LengthOfLastWord {
public static void main(String[] args) {
L58_LengthOfLastWord lengthOfLastWord = new L58_LengthOfLastWord();
System.out.println("" + lengthOfLastWord.lengthOfLastWord(" fly me to the moon "));
}
public int lengthOfLastWord(String s) {
// 最后一个单词的长度
int lastWordLength = 0;
boolean isSpace = true;
for (int i = s.length() - 1; i >= 0; i--){
// 由于题目中,说了只有字母和空格
// 当不是空格是就是最后一个字母开始了
// 32 就是空字符
isSpace = (s.charAt(i) == 32);
// 这里不为空格的话,说明匹配到单词
if (!isSpace){
lastWordLength ++;
}
// 等于空说明又走到空字符串了,长度不为0,所以已经匹配到单词了
if (isSpace && lastWordLength != 0){
return lastWordLength;
}
}
// 返回长度
return lastWordLength;
}
}
下一篇:
【密码加密方式——Md5+盐】
