题目:
给定一个仅包含大小写字母和空格 ' ' 的字符串 s,返回其最后一个单词的长度。
如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。
如果不存在最后一个单词,请返回 0 。
说明:一个单词是指仅由字母组成、不包含任何空格的 最大子字符串。
示例:
输入: "Hello World"
输出: 5
链接:https://leetcode-cn.com/problems/length-of-last-word
1、字符串从右往左遍历,直到当前位置的元素为空
Python代码:
class Solution(object):
def lengthOfLastWord(self, s):
"""
:type s: str
:rtype: int
"""
if not s:
return 0
s = s.encode('utf-8').strip()
size = len(s)
i=0
while (size-1-i >=0 and s[size-1-i] != ' '):
i += 1
return i
C++代码:
class Solution {
public:
int lengthOfLastWord(string s) {
if (s.size()==0){
return 0;
}
size_t n = s.find_last_not_of( " \r\n\t" );
if (n != string::npos){
s.erase( n + 1 , s.size() - n );
}
int size = s.size();
int i=0;
while(size-1-i>=0 && s[size-1-i]!=' '){
i += 1;
}
return i;
}
};