>最后一个单词的长度<
给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。
说明:
1.单词 是指仅由字母组成、不包含任何空格字符的最大子字符串
//提示
1. 1 <= s.length <= 104
2. s 仅有英文字母和空格 ' ' 组成
3. s 中至少存在一个单词
实例1:
输入:s = "Hello World"
输出:5
实例2:
输入:s = " fly me to the moon "
输出:4
实例3:
输入:s = "luffy is still joyboy"
输出:6
一、解题思路
1、解法一( C++ )
解法思路:反向遍历字符串,并考虑排除字符串最右边有空格字符的情况,然后寻找最后一个单词并计算其长度。
代码如下:
class Solution {
public:
int lengthOfLastWord(string s) {
int length=0;
for(int i=s.size()-1;i>=0;i--){ //获取字符串长度并反向遍历
if(s[i]!=' '){
length++;
}
else{
if(length!=0) //排除字符串最右边有空格字符的情况
break;
}
}
return length;
}
};
运行结果截图如下:
2、解法二( Java )
解法思路:首先使用 trim() 方法(<- 点击查看详细介绍)去除整个字符串两端多余的空格(删除字符串的头尾空白符),再反向遍历字符串,然后寻找最后一个单词并计算其长度。
代码如下:
class Solution {
public int lengthOfLastWord(String s) {
if(s==" ") return 0;
s=s.trim(); //去除整个字符串两端多余的空格
int length=0;
int i=s.length()-1; //获取字符串长度
while(i>=0){
if(s.charAt(i)!=' '){ //返回指定索引处的字符
i--;
length++;
}
else
break;
}
return length;
}
}
运行结果截图如下: