05
04/2015
[LeetCode] Length of Last Word
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.
解题思路:
注意“a ”这种情况仍然返回1,而不是0。另外,const char* 不能直接赋值给char*变量,需要强制转换,而反过来是可以的。
代码如下:
class Solution {
public:
int lengthOfLastWord(const char *s) {
int length=0;
char* c=(char*)s;
while(*c!='\0'){
if(*c!=' '){
length++;
}else if(*c==' '&&*(c+1)!=' '&&*(c+1)!='\0'){
length=0;
}
c=c+1;
}
return length;
}
};二次刷题(2015-07-31)
之前做的是从前往后扫,其实可以直接从后往前扫。先去除后边的空格,然后在开始计数。
class Solution {
public:
int lengthOfLastWord(string s) {
int len = s.length();
int result = 0;
int lastNotEmpty = len - 1;
while(lastNotEmpty>=0 && s[lastNotEmpty]==' '){
lastNotEmpty--;
}
while(lastNotEmpty>=0 && s[lastNotEmpty]!=' '){
lastNotEmpty--;
result++;
}
return result;
}
};转载请注明:康瑞部落 » [LeetCode] Length of Last Word

0 条评论