給定字符串 s,由大小寫字母和空格組成,返回最後一個單詞的長度。單詞定義為非空格字符序列。若不存在返回 0。
掃描字符串,遇到非空格且前一字符為空格(或為首字符)時重置計數器,非空格時遞增。最終計數器即為最後單詞長度。
從末尾向前跳過尾部空格,再計數連續非空格字符直到遇到空格或開頭。利用標準庫 find_last_not_of 和 find_last_of 可一行實現。
class Solution {
public:
int lengthOfLastWord(string s) {
int end = s.find_last_not_of(' ');
if (end == string::npos) return 0;
int start = s.find_last_of(' ', end);
return end - start;
}
};