58.最后一个单词的长度-力扣(LeetCode)
题目:
解题思路:
题目要求统计最后一个单词的长度,根据其给出的示例可知,最后一个单词的前后都可能存在空格。统计其长度的关键是,找到最后一个单词的首字母和尾字母。
下面给出的代码一、二中都给出注释,整体思路是从后往前遍历,通过出现空格、字符串长度作为结束条件,实现统计最后一个单词的长度的功能。
代码:
代码一:
int lengthOfLastWord(char *s)
{
char *q = s;//记录字符串首字符位置
while(*q == ' '){q++;};//跳过开头空格
while(*++s);//s指向'\0'
while(*--s == ' ');//跳过末尾空格
int len = 0;
while(*s != ' ' && s != q)
{
len++;
s--;
}
if(s == q)//字符串中只存在一个单词时
return len+1;
else
return len;
}
代码二:
int lengthOfLastWord(char *s)
{
int len = 0;
for(int i = strlen(s)-1; i >= 0 ; i--)//找到尾部
{
if(s[i] != ' ')//统计
len++;
if(s[i] == ' ' && len != 0)//跳过末尾空格,结束标志
return len;
}
return len;
}