58. 最後一個單詞的長度 58. Length of Last Wordbash
給定一個僅包含大小寫字母和空格' '
的字符串,返回其最後一個單詞的長度。ui
若是不存在最後一個單詞,請返回0
。spa
說明:一個單詞是指由字母組成,但不包含任何空格的字符串。code
輸入: "Hello World" 輸出: 5ip
主要思路是從右向左遍歷。先找到第一個非空格字符,做爲最後一個單詞的結束字符,開始計數cnt
,繼續往左遍歷,找到第一個空格,即單詞的開始位置,計數結束,返回cnt
。leetcode
從右往左遍歷。字符串
class Solution {
public:
int lengthOfLastWord(string s) {
int n = s.length();
int i = n - 1;
while(i >= 0 && s[i] == ' ') { // 尋找第一個非空格字符
i--;
}
if(i < 0) {
return 0;
}
int cnt = 0;
while(i >= 0 && s[i] != ' ') {// 統計非空格字符的長度,即爲最後一個單詞的長度
cnt++;
i--;
}
return cnt;
}
};
複製代碼
class Solution {
public int lengthOfLastWord(String s) {
int n = s.length();
int i = n - 1;
while(i >= 0 && s.charAt(i) == ' ') {// 從右往左尋找第一個非空格字符
i--;
}
if(i < 0) {
return 0;
}
int cnt = 0;
while(i >= 0 && s.charAt(i) != ' ') {// 統計非空格字符即爲最後一個單詞的長度
cnt++;
i--;
}
return cnt;
}
}
複製代碼
class Solution(object):
def lengthOfLastWord(self, s):
""" :type s: str :rtype: int """
n = len(s)
i = n - 1
while i >= 0 and s[i] == ' ': # 從右往左找第一個非空格字符
i -= 1
if i < 0:
return 0
cnt = 0
while i >= 0 and s[i] != ' ': # 統計連續非空格字符的數量,即爲最後一個單詞的長度。
i -= 1
cnt += 1
return cnt
複製代碼
/**
* @param {string} s
* @return {number}
*/
var lengthOfLastWord = function(s) {
var n = s.length;
var i = n - 1;
while (i >= 0 && s[i] == ' ') {//從右往左找第一個非空格字符,即最後一個單詞的結束字符
i -= 1;
}
var cnt = 0;
while(i >= 0 && s[i] != ' ') {//從右往左找第一個空格符號,即最後一個單詞的開始位置
i -= 1;
cnt += 1;
}
return cnt;
};
複製代碼