原题链接在这里:
题目:
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.
For example,
Given s ="Hello World"
,return 5
. 题解:
从最后一个char 开始往前扫,遇到第一个空格就时就走完了最后一个词。
不过要注意最后一个char 本身就是空格的情况,所以需要先把s trim()一下。
Time Complexity: O(s.length()).
Space: O(1).
AC Java:
1 public class Solution { 2 public int lengthOfLastWord(String s) { 3 if(s == null || s.length() == 0){ 4 return 0; 5 } 6 7 s = s.trim(); 8 int i = s.length()-1; 9 while(i>=0){10 if(s.charAt(i) == ' '){11 break;12 }else{13 i--;14 }15 }16 return s.length()-1-i;17 }18 }