Length of Last World

来源:互联网 发布:淘宝网运营模式浅谈 编辑:程序博客网 时间:2024/06/07 12:08

题目详情:https://leetcode.com/problems/length-of-last-word/#/description
这是自己写的,运行时间289ms[衰]。

int lengthOfLastWord(char* s){  int len=0;  for(int i=0;i<strlen(s);++i)  {    if( s[i]==' ' )    {      while(s[i]==' ')        ++i;      if( s[i]=='\0')          return len;      else          len=0;    }    ++len;  }  return len;}

然后看到大神写的代码,瞬间感觉自己好笨啊。我自己写的代码是从前往后扫描,导致运行时间长。但是题目要求统计最后一个单词的长度,从后往前扫描更快,更简单。以下为代码:

int lengthOfLastWord(char* s){  int length=strlen(s),i;  int lastWord=0;  if(length==0) //字符串的长度为0    return 0; //直接返回  while ( s[length-1] == ' ' ) //从后往前扫描  {  //直到最后一个单词的最后一个字母结束    length--;  }  for ( i = length-1; i >= 0; i--)//从最后一个单词的最后字母开始计数长度  {    if(s[i]==' ') //碰到' '说明最后一个单词已经结束      break;//退出循环即可    else  //如果不是‘ ’,说明还是最后一个单词      lastWord++; //继续计数字符个数  }  return lastWord; //返回最后一个单词的长度}