給定一個僅包含大小寫字母和空格 ' '
的字符串,返回其最後一個單詞的長度。
如果不存在最後一個單詞,請返回 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;
}
};
兩種算法思路差不多,寫法不同而已。