题目描述:给定一个字符串(有单词,有空格),返回最后一个单词的长度。
解题注意点:
1、首先,判断传过来的字符串是否为空,若为空,返回0;
2、设置一个判断因子(flag)代表前一个字符是否为空格,若前一个字符为空格则flag=false,否则flag=true。初始化flag=false。这样设计是为了保证“a ”这种字符串(结尾处有空格)仍然可以正确的返回。
3、遍历这个字符串的每个元素。
若当前字符为字母
若前一个字符为空格(flag==false),则计数器清零;
计数器加一,flag=true;
若当前字符为空格,那么flag=false
4、返回计数器
class Solution {
public:
int lengthOfLastWord(const char *s) {
if(s==NULL) return 0;
int result=0;
bool flag=false;//前一个字符是否为‘ ’判断因子,若为‘ ’则是false,否则true;
for(int i=0; s[i]; i++)
{
if(s[i]>='a'&& s[i]<='z' || s[i]>='A' && s[i]<='Z')
{
if(flag==false)
{result=0;}
result+=1;
flag=true;
}
else if(s[i]==' ')
{
flag=false;
}
}
return result;
}
};