Leetcode:58. 最后一个单词的长度 python 2020.2.11
程序员文章站
2022-04-05 11:48:51
...
给定一个仅包含大小写字母和空格 ' ' 的字符串 s,返回其最后一个单词的长度。 如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。 如果不存在最后一个单词,请返回 0 。 说明:一个单词是指仅由字母组成、不包含任何空格的 最大子字符串。
示例: 输入: "Hello World" 来源:力扣(LeetCode) |
'''
安安思路:正则表达式
'''
class Solution:
def lengthOfLastWord(self, s: str) -> int:
pattern = re.compile(r'\w+') # 查找字母
result = pattern.findall(s)
#print(result)
return len(result[-1]) if len(result)>0 else 0
#自己写的python
class Solution:
def lengthOfLastWord(self, s: str) -> int:
s = s.rstrip(" ")
#print(s, len(s))
for i in range(len(s)-1,-1,-1):
#print(i, s[i])
if(s[i] == " "):
return len(s)-i-1
return len(s)
别人家的java
class Solution {
public int lengthOfLastWord(String s) {
int end = s.length() - 1;
while(end >= 0 && s.charAt(end) == ' ') end--;
if(end < 0) return 0;
int start = end;
while(start >= 0 && s.charAt(start) != ' ') start--;
return end - start;
}
}
用时0s,这个有点强
#别人家的 用split分割
class Solution:
def lengthOfLastWord(self, s: str) -> int:
strs = s.split()
return len(strs[-1]) if strs else 0