58. 最后一个单词的长度
题目:
思路:
【1】既然找的是最后一个单词,那么正常的话肯定是反向遍历了会比较快(但是特殊情况,如把很多空格塞在最后的情况,这种情况如果太多了其实效率反倒是不如正向遍历),但是反向遍历的话肯定需要先排除不需要的字符,然后计算完第一个单词后就停下来,这种在正常情况下无疑是最优的。
代码展示:
//时间0 ms 击败 100% //内存39.9 MB 击败 19.54% class Solution { public int lengthOfLastWord(String s) { int index = s.length() - 1; while (s.charAt(index) == ' ') { index--; } int wordLength = 0; while (index >= 0 && s.charAt(index) != ' ') { wordLength++; index--; } return wordLength; } } //时间0 ms 击败100% //内存39.9 MB击败21.35% class Solution { public int lengthOfLastWord(String s) { int result = 0; for (int i = s.length()-1; i >= 0 ; i--){ if (s.charAt(i) == ' ' && result == 0) continue; if (s.charAt(i) == ' ' && result != 0) return result; result++; } return result; } }