最后一個(gè)單詞的長(zhǎng)度
給定一個(gè)僅包含大小寫(xiě)字母和空格 ' '
的字符串,返回其最后一個(gè)單詞的長(zhǎng)度杆烁。
如果不存在最后一個(gè)單詞牙丽,請(qǐng)返回 0 。
說(shuō)明:一個(gè)單詞是指由字母組成兔魂,但不包含任何空格的字符串烤芦。
示例:
輸入: "Hello World"
輸出: 5
分析
按照題目的意思,字符串的情況有兩種:
- 全為空格
" "
- 單詞左右有若干空格
" Hello World "
解法一
class Solution {
public int lengthOfLastWord(String s) {
String[] strs = s.split(" ");
if(strs.length == 0) return 0;
return strs[strs.length - 1].length();
}
}
解法二
標(biāo)簽:字符串遍歷
從字符串末尾開(kāi)始向前遍歷析校,其中主要有兩種情況
第一種情況构罗,以字符串"Hello World"為例铜涉,從后向前遍歷直到遍歷到頭或者遇到空格為止,即為最后一個(gè)單詞"World"的長(zhǎng)度5
第二種情況遂唧,以字符串"Hello World "為例芙代,需要先將末尾的空格過(guò)濾掉,再進(jìn)行第一種情況的操作盖彭,即認(rèn)為最后一個(gè)單詞為"World"纹烹,長(zhǎng)度為5
所以完整過(guò)程為先從后過(guò)濾掉空格找到單詞尾部,再?gòu)奈膊肯蚯氨闅v召边,找到單詞頭部铺呵,最后兩者相減,即為單詞的長(zhǎng)度
時(shí)間復(fù)雜度:O(n)隧熙,n為結(jié)尾空格和結(jié)尾單詞總體長(zhǎng)度
作者:guanpengchn
鏈接:https://leetcode-cn.com/problems/two-sum/solution/hua-jie-suan-fa-58-zui-hou-yi-ge-dan-ci-de-chang-d/
class Solution {
public int lengthOfLastWord(String s) {
int end = s.length() - 1;
while(end >= 0 && s.charAt(end) == ' ') end--;
if(end < 0) return 0;
int start = end;
while(start >= 0 && s.charAt(start) != ' ') start--;
return end - start;
}
}