题目:有一个指定字符串s,s字符串是一些英语单词构成的语句,每个单词之间用一些空格字符隔开。
要求:返回字符串中最后一个单词的长度。
示例 1:
输入:s = "Hello World"
输出:5
示例 2:
输入:s = " there are four people in my family"
输出:6
示例 3:
输入:s = "the apple is red "
输出:3
解析:
1. 从字符串末尾往前找;
2. 从末尾往前找到第一个非空字符串记为开始1;
3. 继续依次往前遇到非空字符每次加1,遇到空字符,则结束;
4. 此时的长度即为最后一个单词的长度。
示例源码:
// Len_lastWordLen.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include <string>
using namespace std;
int LastWordLen(string s)
{
int len = 0;
bool bfirst = false;
for (int i = s.size() - 1; i >= 0; i--)
{
if (bfirst == false)
{
if (s[i] != ' ')
{
len = len + 1;
bfirst = true;
}
}
else
{
if (s[i] != ' ')
{
len++;
}
else {
break;
}
}
}
return len;
}
int main()
{
string s = "Hello World";
int len = LastWordLen(s);
printf("\n\t输入: s = \"%s\" \n\t输出: %d\n", s.c_str(), len);
s = " there are four people in my family";
len = LastWordLen(s);
printf("\n\t输入: s = \"%s\" \n\t输出: %d\n", s.c_str(), len);
s = "the apple is red ";
len = LastWordLen(s);
printf("\n\t输入: s = \"%s\" \n\t输出: %d", s.c_str(), len);
}
执行结果: