LeetCode| |最后一个单词的长度

题目:
给定一个仅包含大小写字母和空格‘ ’的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回0。
说明:一个单词是指由字母组成,但不包含任何空格的字符串。

思路:

使用两个计数器,一个代表的是当前单词的长度(InWordLength),一个代表的是最后一个单词的长度(LastWordLength)。如果该字符不是空格‘ ’的话,将InWordLength加1,然后再将其赋值给LastWordLength,如果该单词是空格的话,就将InWordLength置为0。
最后将LastWordLength进行返回即可。

代码:

//求最后一个字符串的长度
//从前往后遍历(效率低)
int LastWordLength(const char* str)
{
    assert(str);

    int InWordLength = 0;
    int LastWordLength = 0;

    while ((*str) != '\0')
    {
        if ((*str) == ' ')
        {
            InWordLength = 0;
        }
        else
        {
            InWordLength++;
            LastWordLength = InWordLength;
        }
        str++;
    }

    return LastWordLength;
}

//从后往前遍历(效率高)
int LastWordLength(const char* str)
{
    assert(str);

    int tail_index = strlen(str) - 1;
    int length = 0;

    while (tail_index >= 0 && str[tail_index] == ' ')
    {
        tail_index--;
    }

    while (tail_index >= 0 && str[tail_index] != ' ')
    {
        tail_index--;
        length++;
    }

    return length;
}

猜你喜欢

转载自blog.csdn.net/qq_40399012/article/details/82634670
今日推荐