2020年5月16日 星期六

LeetCode 58. Length of Last Word [Easy] [C++] 解題筆記

這題要求我們找到一個字串最後一個 word 的長度,其中 word 的定義是不包含 non-space character 的最長 substring。

EX:

"Hello World"
這裡的最後一個 word 很顯然就是就是 World 其長度為 5。
特別注意空白字元有可能在字串最後面 ex: "aa " 此時最一個word為 aa。

想法:
    這題基本上沒啥難度,只要從尾端遍歷回來,用一個變數len紀錄最後一個word的長度,當len等於0時遇到' '(空白)
直接continue,若是遇到' '空白字元時len已經有長度了,表示最後一個word已經遍歷完成直接跳出迴圈即可。


完整程式碼:
class Solution {
public:
    int lengthOfLastWord(string s) {
        int len = 0;
        for (int i = s.size() - 1; i >= 0; i--) {
            if (s[i] != ' ') {
                len++;
            }
            else if (len != 0){
                break;
            }
        }
        
        return len;
    }
};


沒有留言:

張貼留言