LeetCode58——Length of Last Word
求出最后最后一个单词的长度。
提供两种方案。
方案1:
把子串按word保存在vector里面,这样求出vector最后一个元素的长度就可以了。
代码:
class Solution {
public:
int lengthOfLastWord(string s) {
auto it = s.begin();
while (*it == ' ')
s.erase(it);
if (s.empty())
return 0;
stringstream ss(s);
string word;
vector<string>words;
while (ss >> word)
words.push_back(word);
return words[words.size() - 1].size();
}
};
方案2:
从后往前,先去掉后面的空格,然后再记录单词数直到碰到下一个非字母的元素。
class Solution{
public:
int lengthOfLastWord(string s) {
int len=s.size()-1;
while(len>=0&&s[len]==' ')//去掉空格
len--;
int count =0;
while(len>=0&&isalpha(s[len]))
{
len --;
count ++;
}
return count;
}
};