題目鏈接:
58. 最后一個單詞的長度 - 力扣(LeetCode)
分析:普通的模擬題,只要有基本的算法思想就可以掌握。
算法思路:要統計最后一個單詞的長度,所以我們只要找到最后一個單詞出現的起始和終止位置,就可以通過簡單的數學計算直接返回最后一個單詞的長度。
我們定義兩個量begin和end,從字符串的末尾開始遍歷,當找到最后一個單詞的起始位置時,我們把這個值賦值給end;然后繼續遍歷,當找到最后一個單詞的結束位置時,我們把值賦給begin。(大家可以看一下參考代碼的實例,從尾向前查找,找到第一個不等于“ ”的位置時,意味著一定進入到最后一個單詞了;繼續查找,從這里開始,當重新找到一個空格時,說明這個單詞已經結束了,做好對應的標記,返回即可。)
下面是參考的代碼:
class Solution {
public:int lengthOfLastWord(string s) {int size=s.size();//統計字符串的長度int begin,end;//定義最后一個單詞的起始和末尾for(end=size-1;end>=0;--end){//從字符串末尾向前循環 找到最后一個單詞時退出if(s[end]!=' ')//找到了最后一個單詞break;}for(begin=end;begin>=0;--begin){//統計最后一個單詞的單詞長度if(s[begin]==' ')break;}return end-begin;//返回最后一個單詞的長度}
};