给定一个字符串s,字符串s由若干单词组成,单词前后用一个空格字符隔开。返回字符串最后一个单词的长度(最后一个的单词后面没有空格字符)。
时间: 2023-05-31 12:18:22 浏览: 269
### 回答1:
可以先将字符串s按照空格字符分割成一个单词数组,然后取出数组中最后一个单词,计算其长度即可。具体实现可以参考以下代码:
```python
def length_of_last_word(s: str) -> int:
words = s.split() # 按照空格字符分割成单词数组
if not words: # 如果数组为空,说明字符串s中没有单词
return 0
else:
return len(words[-1]) # 返回最后一个单词的长度
```
例如,对于字符串s="hello world",调用length_of_last_word(s)会返回5,因为最后一个单词是"world",长度为5。
### 回答2:
本题可以考虑从后往前遍历字符串s,找到最后一个单词,并计算其长度。
具体而言,我们可以从字符串s的末尾开始遍历,忽略末尾的空格字符,一旦遇到一个非空格字符,就开始计算单词的长度,直到遇到下一个空格字符或字符串的开头。如果已经计算完了最后一个单词,那么就直接返回其长度。
代码如下:
```python
def lengthOfLastWord(s: str) -> int:
end = len(s) - 1
while end >= 0 and s[end] == ' ': # 忽略末尾的空格字符
end -= 1
length = 0
while end >= 0 and s[end] != ' ': # 计算最后一个单词的长度
length += 1
end -= 1
return length
```
需要注意的是,如果字符串s只包含空格字符,那么我们应该返回0。因此在代码中需要判断字符串末尾是否全是空格字符的情况。
### 回答3:
题目要求我们找出给定字符串中最后一个单词的长度。首先我们需要理解什么是单词。一般情况下,单词指的是一个连续的字符序列,不包含空格等特殊字符。那么在给定字符串中,我们需要从后往前扫描,找到最后一个非空单词,再计算这个单词的长度。
具体实现可以使用两个指针,从给定字符串的末尾开始扫描。第一个指针指向最后一个非空字符,在我们找到最后一个单词之前,它一直不动。第二个指针指向当前扫描到的字符,在扫描到空格时就可以计算前一个单词的长度,并将第二个指针移动到下一个非空字符。当第二个指针遇到第一个非空字符时,就找到了最后一个单词,可以计算其长度并返回。
具体的代码实现如下:
```python
def length_of_last_word(s: str) -> int:
# 先去除末尾的空格
s = s.strip()
# 初始化指针位置
end = len(s) - 1
start = end
# 从后往前扫描字符串
while start >= 0:
# 找到最后一个单词的结束位置
if s[start] == ' ':
return end - start
# 如果还在单词中,则将 start 指针左移
start -= 1
# 如果整个字符串没有空格,则返回整个字符串的长度
return end - start
```
以上就是针对题目的一种解决方法。需要注意的是,这里去除末尾空格的操作是非常必要的,因为如果末尾有多余空格,就会影响找到最后一个单词的位置。此外,还有一些特殊情况需要考虑,比如空字符串、只有空格的字符串等等。要根据具体情况进行判断和处理。
阅读全文