leetcode 58. 最后一个单词的长度

给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。

如果不存在最后一个单词,请返回 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;
    }
};
两种算法思路差不多,写法不同而已。
发布了46 篇原创文章 · 获赞 14 · 访问量 2万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章