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;
}
};
本文详细介绍了如何通过两种方案解决 LeetCode58 题目,即利用 C++ 实现来获取给定字符串中最后一个单词的长度。方案一涉及将子串保存为 vector 的元素并计算最后一个元素的长度;方案二则采用从后向前遍历的方法,去除空格并计算单词数量。此教程涵盖了字符串操作和算法应用。
8万+

被折叠的 条评论
为什么被折叠?



