LeetCode第58题---最后一个单词的长度
问题描述
给定一个仅包含大小写字母和空格 ' ' 的字符串 s,返回其最后一个单词的长度。
如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。
如果不存在最后一个单词,请返回 0 。
说明:一个单词是指仅由字母组成、不包含任何空格的 最大子字符串。
示例:
输入: "Hello World"
输出: 5
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/length-of-last-word
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思想
java中的String类有一个spilt()函数,能自动分割字符串。
用法:
String str="1234@abc";
String[] a = str.split("@");
System.out.println("处理结果: "+a[0]+","+a[1]); //输出的是: 处理结果: 1234,abc
有了这个函数,我们的解题就简单多了。
来一个字符串,我们把它用spilt一下,然后得到分割后的数组。
对于本来就是空或者全是空格的字符串,分割后数组长度为0。
而对于其他字符串,我们提取最后一个字符的长度就符合题目要求。
测试用例
"" 空字符串
"Hello World" 一个简单的字符串
"Hello World World World World World World World World World World I" 一个较长的字符串
代码
class Solution {
public int lengthOfLastWord(String s) {
//用String.split()直接分割就可以了
String[] str=s.split(" ");
//如果长度为0,返回0
if(str.length==0) {
return 0;
}
//不用else的话可以省1ms时间
return str[str.length-1].length();
}
}
总结
第一次用时2ms,第二次用时1ms,原因在于第一次多用了一个else。