Length of Last Word
Given a string s consists of upper/lower-case alphabets and empty space characters ’ ‘, return the length of last word in the string.
If the last word does not exist, return 0.
Note: A word is defined as a character sequence consists of non-space characters only.
For example, Given s = "Hello World", return 5.
解析
这题很简单,统计最后一个单词的字母个数。可以如网上大多数那样,从后遍历,找到最后一个不是‘ ’,再计数。
这里给出一个从前遍历的方法。自认为效率也比较高。
代码
int lengthOfLastWord(char* s) {
int c = 0;//当前单词长度
int prec=0;//上一个单词的长度
while(*s){
++c;
if(*s==' '){
if(c>1) prec =c-1;
c=0;
}
++s;
}
return c?c:prec;//c==0表明是空格,则prec为结果
}
运行时间
理论上应该比使用 strlen()
的速度要快,因为 strlen()
本质也是进行了一次遍历。
然而结果是这样的: