题目描述:
给定一个仅包含大小写字母和空格 ' ' 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。
如果不存在最后一个单词,请返回 0 。
`说明`:一个单词是指仅由字母组成、不包含任何空格字符的 `最大子字符串`。
输入: "Hello World" 输出: 5
[链接](https://leetcode-cn.com/problems/length-of-last-word)
题解:
最初直接用String的split函数解决,方案如下,后来学习了力扣官方的解决方案
class Solution {
public int lengthOfLastWord(String s) {
String[] s1 = s.split(" ");
int length = s1.length;
if(length <=0){
return 0;
}
return s1[length -1].length();
}
}
class Solution {
public int lengthOfLastWord(String s) {
char whiteSpace = ' ';
//消除行位的空格
int end = s.length()-1;
while (end>=0&&s.charAt(end)==whiteSpace){
end--;
}
//全是空格或s的长度为0
if(end<0){
return 0;
}
//计算最后一个单词左边的空格的位置
int start = end;
while (start>=0&&s.charAt(start)!=whiteSpace){
start--;
}
//单词长度
return end-start;
}
}