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
.
一开始想得比较简单,找到最后一个‘ ‘的位置,用s的长度减去这个位置的索引就是最后一个单词的长度。
class Solution { public: int lengthOfLastWord(string s) { if(s.empty()) return 0; int index = s.find_last_of(' '); return s.length() - index-1; } };但是会报错,因为没有考虑到‘a ’的情况。所以一开始需要除去后面的空格再计数。给出两种解答:
class Solution { public: int lengthOfLastWord(string s) { int length = s.size(); while(s[length-1] == ' ' ) { length--; } string s1 = s.substr(0, length); int index = s1.find_last_of(' '); return length-1-index; } };
class Solution { public: int lengthOfLastWord(string s) { int length = s.size(); int sum = 0; while(s[length-1] == ' ' ) { length--; } for(int i = length-1; i >= 0; i--) { if(s[i] != ' ') { sum++; } else break; } return sum; } };
Leetcode22: Length of Last Word
原文地址:http://blog.csdn.net/u013089961/article/details/45540361