leetcode 58. 最後一個單詞的長度

給定一個僅包含大小寫字母和空格 ' ' 的字符串,返回其最後一個單詞的長度。

如果不存在最後一個單詞,請返回 0 。

說明:一個單詞是指由字母組成,但不包含任何空格的字符串。

示例:

輸入: "Hello World"
輸出: 5

解法一:

class Solution {  
public:  
    int lengthOfLastWord(string s) {  
        int len = s.length();  
        int ans = 0;  //用ans記錄最後一個單詞的長度
        for(int i = len-1 ; i >= 0 ; i --) {  
            if(s[i] == ' ')  continue;  //如果從後面讀取的數組元素是空格,則跳過,繼續讀取下一個
            while(s[i-ans] != ' '&&i-ans >= 0) {  
                ans++;  
            }  
            return ans;  
        }  
        return ans;  
    }  
}; 

解法二:

class Solution {
public:
    int lengthOfLastWord(string s) {
        int n = s.size();
        int p = 0;
        for(int i = n-1;i > -1;--i){
            if(s[i] != ' '){
                p = i-1;
                while(s[p] != ' ' && p > -1) p--;
                return i-p;
            }
        }
        return 0;
    }
};
兩種算法思路差不多,寫法不同而已。
發佈了46 篇原創文章 · 獲贊 14 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章