之前的博客里面我讲了《剑指offer》中的最后一个单词的长度,参考https://blog.csdn.net/lvxin15353715790/article/details/83793174
因为《LeetCode》中的不同,所以我总结一下这个题。
题目描述:
给定一个仅包含大小写字母和空格 ’ ’ 的字符串,返回其最后一个单词的长度。
如果不存在最后一个单词,请返回 0 。
说明:一个单词是指由字母组成,但不包含任何空格的字符串。
首先,要判断可能的输入,有以下几种
//1.空指针
//2.空字符串
//3.只含有字母 "abc"
//4.含有字母也含有空格 "abc "
//5.含有字母也含有空格 "hello world"
然后,我们考虑怎么解决,因为只是要求出最后一个单词的长度,所以我们可以设置一个计数器 flag ,从开头开始计数,当遇到空格且空格的下一位不为零时,计数器清零,代表一个新的单词的开始。
具体代码如下:
class Solution {
public:
int lengthOfLastWord(string s) {
//1.空指针
//2.空字符串
//3.只含有字母 "abc"
//4.含有字母也含有空格 "abc "
//5.含有字母也含有空格 "hello world"
int flag=0;
int i=0;
if(s.size()==0) //空指针、空字符串
{
return 0;
}
for(i=0;i<s.size();++i)
{
if(s[i]!=' ')
{
if (i != 0 && s[i - 1] == ' ')
flag = 1;
else
++flag;
}
}
return flag;
}
};