Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the length of last word in the string.spa
If the last word does not exist, return 0.指針
Note: A word is defined as a character sequence consists of non-space characters only.code
For example, Given
s = "Hello World"
, return 5字符串
時間 O(N) 空間 O(N)string
簡單的使用API。先trim再split再用length。it
public class Solution { public int lengthOfLastWord(String s) { return s.trim().split(" +")[s.trim().split(" +").length - 1].length(); } }
時間 O(N) 空間 O(1)io
從後往前看字符串,跳過全部空格後,記下該結束位置,再到下一個空格,再記錄一個開始位置,則長度就是結束位置減去開始位置。在跳過空格的循環後,要判斷是否已經超界,若是超界則返回0ast
public class Solution { public int lengthOfLastWord(String s) { int idx = s.length() - 1; // 跳過末尾的空格 while(idx >= 0){ if(s.charAt(idx) != ' ') break; idx--; } // 記錄結束位置 int end = idx; // 若是已經超界返回0 if(idx < 0) return 0; // 找到開始位置 while(idx >= 0){ if(s.charAt(idx) == ' ') break; idx--; } return end - idx; } }