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
.
解法一:STL
1 class Solution { 2 public: 3 int lengthOfLastWord(string s) { 4 //STL 5 auto first=find_if(s.rbegin(),s.rend(),::isalpha); 6 auto last=find_if_not(first,s.rend(),::isalpha); 7 return distance(first,last); 8 } 9 };
解法二:
class Solution { public: int lengthOfLastWord(string s) { //从后往前扫描 int len=s.size(); //去掉后缀空格 while(s[len-1]==' ') len--; int sum=0; for(int i=len-1;i>=0;i--) { if(s[i]!=' ') sum++; else break; } return sum; } };
解法三:顺序扫描
1 int lengthOfLastWord(char* s) { 2 int len=0; 3 while(*s) 4 { 5 if(*s++!=' ') 6 len++; 7 else if(*s&&*s!=' ') 8 len=0; 9 } 10 return len; 11 }