一 题目
Given a string s consists of upper/lower-case alphabets and empty space characters ' '
, return the length of last word in the string.
If the last word does not exist, return 0.
Note: A word is defined as a character sequence consists of non-space characters only.
Example:
Input: "Hello World" Output: 5
二 分析
easy 级别。求字符串包含空格分割后的最后一个子串的长度。
字符串的题目,这个我理解就是单纯的api使用,没啥算法了,从头遍历。有些边界case要注意,比如"a ",还有尾部没有空格" a"。
还有全是空格的“ ”。所以要trim()处理。这里使用了数组来处理。
public static int lengthOfLastWord(String s) {
if(s== null || s.length()==0){
return 0;
}
String[] arrays= s.split(" ");
String str =arrays[arrays.length-1];
return str.length();
}
Runtime: 1 ms, faster than 46.94% of Java online submissions for Length of Last Word.
Memory Usage: 35.6 MB, less than 100.00% of Java online submissions forLength of Last Word.
看了下讨论区,还有大神一行代码直接算。用trim 之后总长度-最后一次“”的位置。
https://leetcode.com/problems/length-of-last-word/discuss/21878/a-single-line-of-code-in-java
public static int lengthOfLastWord(String s) {
return s.trim().length()-s.trim().lastIndexOf(" ")-1;
}