一、题目描述
给你一个字符串 s,由若干单词组成,单词之间用空格隔开。返回字符串中最后一个单词的长度。如果不存在最后一个单词,请返回 0 。
单词是指仅由字母组成、不包含任何空格字符的最大子字符串。
二、解题思路
题目很容易理解,既然是返回字符串中最后一个单词的长度,那么从后向前遍历即可,注意分析几种情况就行:
-
因为单词之间都是yoga空格隔开的,所以只要从后向前遍历的时候遇到空格就停止,如果只有一个单词就遍历到头。
-
第二种情况是字符串末尾存在空格的情况,首先就是将空格顾虑掉,过滤掉之后再开始计数。
所以完整过程为先从后过滤掉空格找到单词尾部,再从尾部向前遍历,找到单词头部,最后两者相减,即为单词的长度
三、代码演示
class Solution {
public int lengthOfLastWord(String s) {
//声明一个计数变量
int count = 0;
//从末尾向前遍历
for (int i=s.length()-1; i>=0; i--){
//当遇到空格的情况
if (s.charAt(i)==' '){
//如果此时count=0,则是末尾遇到空格
if (count==0){
continue;
}else{
//当遇到空格,此时count != 0,那么此时就是末尾单词遍历完了
break;
}
}
count++;
}
return count;
}
}