给你一个字符串 s
,由若干单词组成,单词之间用空格隔开。返回字符串中最后一个单词的长度。如果不存在最后一个单词,请返回 0
。
单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
示例 1:
输入:s = "Hello World"
输出:5
示例 2:
输入:s = " "
输出:0
提示:
- 1 <=
s.length
<= 104 s
仅有英文字母和空格' '
组成
思路
思路很简单,就是把原先给定的字符串反转过来,然后寻找遇到第一个空格之前的长度。
但是要注意本题有一个坑点:
输入的字符串末尾可能有多余的空格,比如:a空格
,如果是输入的这种字符串,反转之后就会直接遇到空格,就会出错。因此,可以先用trim()
方法把字符串末尾多余的空格剪掉,然后再交给StringBuffer
处理即可。
代码
public class Solution {
public int lengthOfLastWord(String s) {
StringBuffer sBuffer = new StringBuffer(s.trim());
sBuffer.reverse();
StringBuffer input = new StringBuffer();
int output = 0;
for(int i=0;i<sBuffer.length();i++) {
if(sBuffer.charAt(i)==' ') break;
output++;
}
return output;
}
}