LeetCode刷題16--最後一個單詞的長度
阿新 • • 發佈:2021-02-02
題目描述
給你一個字串 s,由若干單片語成,單詞之間用空格隔開。返回字串中最後一個單詞的長度。如果不存在最後一個單詞,請返回 0 。
單詞是指僅由字母組成、不包含任何空格字元的最大子字串。
示例 :
輸入:s = “Hello World”
輸出:5
示例:
輸入:s = " "
輸出:0
1 <= s.length <= 104
s 僅有英文字母和空格 ’ ’ 組成
解題思路
int LastWordLength(string s) { int count=0; for(int i=s.length()-1;i>=0;i--) { if(s[i]==' '&& count!=0) { break; } else if(s[i]!=' ') { count++; } } return count; } int main() { string s1="Hello World"; string s2="aa bb c 11 "; cout<<LastWordLength(s1)<<endl; cout<<LastWordLength(s2)<<endl; return 0; }
結果:
分析:
1.反向遍歷字串。
2.如果字串元素為空格,且計數count不為0,說明此前遍歷已經找到最後一個字串中的元素。
3.如果字串中的元素不為空格,繼續遍歷尋找,表示已經找到字串中的元素,直到下次找到空格表示找完最後一組字串。
分析
string s2="aa bb c 11 ";
1.反向遍歷,不滿足s[i]==’ ‘&& count!=0也不滿足s[i]!=’ ‘,繼續遍歷。
2.直到找到第一個’1’,開始計數count++,繼續遍歷。
3.找到第二個’1’,count++,繼續遍歷,找到空格,此時count為2,break。