题号:no58
题目:最后一个单词的长度
题目描述
给你一个字符串 s
,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。
单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
示例
示例 1:
输入:s = "Hello World"
输出:5
示例 2:
输入:s = " fly me to the moon "
输出:4
示例 3:
输入:s = "luffy is still joyboy"
输出:6
1 <= s.length <= 104
s
仅有英文字母和空格' '
组成s
中至少存在一个单词
思路
1.简单的指针遍历
2.从后往前找到第一个不为空格的字母
3.开始计数,从后往前计数
4.指针遍历到非字母位置 或者已经遍历完了整个字符串
解题代码
class Solution {
public int lengthOfLastWord(String s) {
if(s==null||s.isEmpty()) return 0;
int l = s.length()-1;
while(l>=0&&!((s.charAt(l)>='a'&&s.charAt(l)<='z')||(s.charAt(l)>='A'&&s.charAt(l)<='Z'))) {
l--;
}
int res = 0;
while(l>=0&&((s.charAt(l)>='a'&&s.charAt(l)<='z')||(s.charAt(l)>='A'&&s.charAt(l)<='Z'))) {
res++;
l--;
}
return res;
}
}
题外话求关注
欢迎大佬们关注小弟的博客https://blog.youkuaiyun.com/qq_41522089