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
.
求字符串最后一个单词的长度
1. 之前考虑不全, 当只用一个length时,会出现'a '时判断错误, 于是要用两个标志来指明
2. 其实也可以先求长度, 从后往前就是求第一个单词的长度
class Solution { public: int lengthOfLastWord(const char *s) { int length1 = 0; int length2 = 0; int i,j; char c; while(*s!=' ') { if(*s++!=' ') length1++; else if(length1!=0) { length2 = length1; length1 = 0; } } if(length1!=0) return length1; if(length1==0) return length2; } };
这个是从尾到头, 直接求第一个单词长度,这样就是最后一个的长度了
有几点:
1. const char *p如果不加const就会报错, 类型不一样
2. s + lenght - 1; 这里要减1
class Solution { public: int lengthOfLastWord(const char *s) { int length = strlen(s); int i; int len = 0; const char *p = s + length - 1; while(length--) { if(*p!=' ') { len++; p--; } else if(len!=0) break; else { p--; continue; } } return len; } };