您的位置:首页 > 其它

Leetcode_Length of Last Word

2014-07-19 15:11 351 查看
https://oj.leetcode.com/problems/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
.
class Solution {
public:
int lengthOfLastWord(const char *s)
{
bool space = false;
bool word = false;
bool preword = false;  //看前一个是不是字母
bool prespace = false; //看前一个是不是空格
int begin = 0;
int end = 0;
int last = 0;

for(int i=0;i<=strlen(s);i++)
{
if(s[i] == ' ' || s[i] == '\0')
space = true;
word = false;

if(s[i] >= 'a' && s[i] <= 'z' || s[i] >= 'A' && s[i] <= 'Z')
{
word = true;
space = false;
}

if(word && !preword && !space) //word begins
{
begin = i;
preword = true;
prespace = false;
}

if(!word && !prespace && space) //word ends
{
end = i;
prespace = true;
preword = false;
last = end-begin;
}
}

return last;
}
};


以上是个人代码,比较原生态。以下是参考大神的比较简练的代码:
参考自:http://blog.csdn.net/pickless/article/details/9938611

class Solution {
public:
int lengthOfLastWord(const char *s) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
int count = 0, last = 0;
while (*s != '\0') {
count = *s == ' ' ? 0 : count + 1;
last = count > 0 ? count : last;
s++;
}
return last;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: