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 条评论