Leetcode 058 最后一个单词的长度 C++ python JAVA

题目:

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

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

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

示例:

输入: "Hello World"
输出: 5

算法过程:如果是用python 或者 java 比较高级点的语言来写,直接套用函数先把字符串切开,再返回最后一项的长度即可。

如果是想不用函数,则很明显从字符串的末尾开始从右往左遍历,遇到第一个非空字符时开始记数,并且在再一次遇到空字符串时结束,应该是比较简单的。

接下来给出C++ 和 Python 和 java的实现

python

class Solution:
    def lengthOfLastWord(self, s):
        """
        :type s: str
        :rtype: int
        """
        l = s.split()
        if len(l) == 0:
            return 0
        return len(l[-1])

C++


class Solution {
public:
    int lengthOfLastWord(string s) {
        int len = s.length();
        int ans = 0;
        //开始设置指针,从尾部遍历
        for(int i = len-1 ; i >= 0 ; i --) {
            if(s[i] == ' ')  continue;
            //找到第一项非空字符后
            while(s[i-ans] != ' '&&i-ans >= 0) {
            //直到找到下一个空字符
                ans++;
            }
            return ans;
        }
        return ans;
    }
};

JAVA


public class Solution {
    public int lengthOfLastWord(String s) {
        if(s==null || s.length()==0)
            return 0;
        int len = s.length();
        int count = 0;
        for(int i=len-1;i>=0;i--){
            if(s.charAt(i)!=' '){
                count++;
            }else if(s.charAt(i)==' '&& count!=0){
                return count;
            }
        }
        return count;
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_41958153/article/details/81203621