题目
length-of-last-word
算法
* 直接算法
- 对字符串预处理:去掉开头和结尾的空格
- 计数器累计非空格的字符串的长度
- 遇到空格则计数器清零
* 直接算法的优化
- 因为是找最后一个字符串的长度
- 所以从字符串尾部开始,先将尾部的空格去掉,然后开始找非空格的字符的长度
代码
* 直接算法
class Solution{
public:
int lengthOfLastWord(string s){
int len=s.size();
int left=0;
int right=len-1;
int count=0;
while(s[left]=' ') ++left;
while (s[right]==' ') --right;
for(int i=left;i<=right;++i){
if(s[i]=' ') count=0;
else ++count;
}
return count;
}
};
* 直接算法的优化
class Solution{
public:
int lengthOfLastWord(string s){
int right=s.size()-1,res=0;
while(right>=0 && s[right]==' ') --right;
while(right>=0 && s[right]!=' '){
--right;
++res;
}
return res;
}
};