您的位置:首页 > 其它

算法学习——leetcode58. 最后一个单词的长度

2019-03-07 14:43 225 查看

题目:

给定一个仅包含大小写字母和空格 

' '
 的字符串,返回其最后一个单词的长度。

如果不存在最后一个单词,请返回 0 。

说明:一个单词是指由字母组成,但不包含任何空格的字符串。

示例:

输入: "Hello World"
输出: 5

解题思路:

用空格来标识一个单词的结束,并将每个单词的length存入到向量lengths中

代码:

[code]class Solution {
public:
int lengthOfLastWord(string s) {
int length = 0;
vector<int> lengths;
lengths.push_back(length);
for(int i=0;i<s.length();i++){
if(s.at(i) == ' '){
if(length>0)
lengths.push_back(length);
length=0;
}
else if(i == s.length()-1 && s.at(i) != ' '){
length++;
lengths.push_back(length);
}
else
length++;
}
// lengths.push_back(length);
return lengths.back();
}
};

百度之后发现可以先去掉首尾的空格,代码可以简化一些,但是内存使用和用时好像也没有很大的变化

代码:

[code]class Solution {
public:
int lengthOfLastWord(string s) {
s.erase(s.find_last_not_of(" ") + 1);
s.erase(0, s.find_first_not_of(" "));
int length = 0;
for(int i=0;i<s.length();i++){
if(s.at(i) != ' '){
length++;
}
else
length = 0;
}
return length;
}
};

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: