Title:
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):从前往后,设置两个变量。可能出错的地方在于s[i] == ' ',之前没有添加 if (len != 0)这个判断
class Solution { public: int lengthOfLastWord(string s) { if (s.size() == 0) return 0; int pre_len = 0; int len = 0; for (int i = 0 ; i < s.size(); i++){ if (s[i] == ' '){ if (len != 0) pre_len = len; len = 0; }else{ len++; } } if (len == 0) return pre_len; else return len; } };
思路(2):从后往前。首先去除最后面是空格的,然后往前知道在遇到空格
class Solution { public: int lengthOfLastWord(const char *s) { int len=strlen(s); int sum=0; while(s[len-1]==' ') len--; for(int i=len-1;i>=0;i--) { if(s[i]!=' ') sum++; else break; } return sum; } };