算法题---最后一个单词的长度(乐乐独记)
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+盐】