题目:
给定一个仅包含大小写字母和空格 ' '
的字符串,返回其最后一个单词的长度。
如果不存在最后一个单词,请返回 0 。
说明:一个单词是指由字母组成,但不包含任何空格的字符串。
示例:
输入: "Hello World" 输出: 5
算法过程:如果是用python 或者 java 比较高级点的语言来写,直接套用函数先把字符串切开,再返回最后一项的长度即可。
如果是想不用函数,则很明显从字符串的末尾开始从右往左遍历,遇到第一个非空字符时开始记数,并且在再一次遇到空字符串时结束,应该是比较简单的。
接下来给出C++ 和 Python 和 java的实现
python
class Solution:
def lengthOfLastWord(self, s):
"""
:type s: str
:rtype: int
"""
l = s.split()
if len(l) == 0:
return 0
return len(l[-1])
C++
class Solution {
public:
int lengthOfLastWord(string s) {
int len = s.length();
int ans = 0;
//开始设置指针,从尾部遍历
for(int i = len-1 ; i >= 0 ; i --) {
if(s[i] == ' ') continue;
//找到第一项非空字符后
while(s[i-ans] != ' '&&i-ans >= 0) {
//直到找到下一个空字符
ans++;
}
return ans;
}
return ans;
}
};
JAVA
public class Solution {
public int lengthOfLastWord(String s) {
if(s==null || s.length()==0)
return 0;
int len = s.length();
int count = 0;
for(int i=len-1;i>=0;i--){
if(s.charAt(i)!=' '){
count++;
}else if(s.charAt(i)==' '&& count!=0){
return count;
}
}
return count;
}
}