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. Have you met this question in a real interview? Yes Example Given s = "Hello World", return 5. Note A word is defined as a character sequence consists of non-space characters only.
题解
关键点在于确定最后一个字符串之前的空格,此外还需要考虑末尾空格这一特殊情况,故首先除掉右边的空白字符比较好。
JAVA:
public class Solution { /** * @param s A string * @return the length of last word */ public int lengthOfLastWord(String s) { if (s == null | s.isEmpty()) return 0; // trim right space int begin = 0, end = s.length(); while (end > 0 && s.charAt(end - 1) == ' ') { end--; } // find the last space for (int i = 0; i < end; i++) { if (s.charAt(i) == ' ') { begin = i + 1; } } return end - begin; } }
源码分析
两根指针。
复杂度分析
遍历一次,时间复杂度 O(n).