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!='\0')
{
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;
}
};