题目:给定一个仅包含大小写字母和空格 ’ ’ 的字符串,返回其最后一个单词的长度。
如果不存在最后一个单词,请返回 0 。
说明:一个单词是指由字母组成,但不包含任何空格的字符串。
示例:
- 输入: “Hello World”
- 输出: 5
Java代码
class Solution {
public int lengthOfLastWord(String s) {
if (s == null || s == " ") return 0;
String str = s.trim();
int len = str.length();
while (len > 0) {
if (str.charAt(--len) == ' ') {
return str.length() - len -1;
}
}
return str.length();
}
}
说明:
字符串从后往前遍历,遇到第一个空格字符就返回遍历单词的长度。需要特别注意,在遍历前需要去掉参数的前后空格字符。
还有一种解法,利用split(" ")方法对参数s分割,获取字符数组,从而获取数组中最后一个单词的长度。
class Solution {
public int lengthOfLastWord(String s) {
if (s == null || s == " ") return 0;
String str = s.trim();
String[] strs = str.split(" ");
return strs[strs.length-1].length();
}
}
这种解法的执行时间较第一种方法遍历方法较长,主要是split()方法耗时较长的缘故。
结果
执行用时 :1 ms, 在所有 Java 提交中击败了91.90%的用户
内存消耗 :35.4 MB, 在所有 Java 提交中击败了83.04%的用户