58. Length Of Last Word
種類 : list
難度 : easy
題目 : 58.Length of Last Word
思維邏輯
- 由字串末端向前推進,使用two point
- right為字串尾,逐一向左,直至
s[right] != ' ' - left隨right向左
- 當
s[right] != ' '時,left向左,直至left == 0 or s[left] != ' '
解法
1 | class Solution: |
時間複雜度: O(n)
空間複雜度: O(1)
難點
- two point範圍容易搞混,
right必須歷遍[0, n],故為len(s) - 1 left需在字串開頭([0])與值為空的時候停止計算- 避免在迴圈中重複計算單字的長度
最佳解法
1 | class Solution: |
時間複雜度: O(n)twoPoint將兩point的loop分開(因left point無需逐一歷遍),與自身解法相比下,更簡單易懂,也避免第一層迴圈中len_w已經計算好要跳出迴圈的問題。pythonFunction()使用python內建函數,與演算法無關,但最簡易。