给你一个字符串 s,由若干单词组成,单词之间用空格隔开。返回字符串中最后一个单词的长度。如果不存在最后一个单词,请返回 0。 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
时间: 2023-06-11 14:09:18 浏览: 51
可以先将字符串从右往左遍历,找到第一个非空格字符,然后从该字符开始继续往左遍历,直到遇到空格或者到字符串的开头为止,这个过程中的字符数就是最后一个单词的长度。
具体实现可以使用两个指针,一个指向字符串的末尾,一个指向非空格字符的位置,然后逐步往左移动指针,直到找到最后一个单词为止。
以下是实现的 Python 代码:
```python
def length_of_last_word(s: str) -> int:
end = len(s) - 1
while end >= 0 and s[end] == ' ': # 找到第一个非空格字符
end -= 1
if end < 0:
return 0
start = end
while start >= 0 and s[start] != ' ': # 继续往左遍历,直到找到空格或字符串开头
start -= 1
return end - start # 最后一个单词的长度
```
示例输入输出:
```python
s = "Hello World"
print(length_of_last_word(s)) # 5
s = " "
print(length_of_last_word(s)) # 0
s = "a "
print(length_of_last_word(s)) # 1
```
相关问题
java给定字符串s,由若干单词组成,单词前后用一些字符串隔开 //返回字符串中最后一个单词的长度。
好的,这个问题我可以回答。可以通过以下代码实现:
```java
public int lengthOfLastWord(String s) {
String[] words = s.split(" ");
if(words.length == 0)
return 0;
else
return words[words.length-1].length();
}
```
这个方法先把字符串按照空格划分成一个单词数组,并判断数组长度。如果数组为空,则说明字符串中没有单词,返回0;否则返回数组中最后一个单词的长度。
给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大 子字符串 。 java
要返回字符串中最后一个单词的长度,可以按照以下骤进行操作:
1. 首先,使用trim()函数去除字符串两端的空格,确保字符串没有前导或尾随空格。
2. 然后,使用split()函数将字符串按照空格进行分割,得到一个字符串数组。
3. 判断字符串数组的长度是否大于0,如果大于0,则最后一个单词的长度就是数组中最后一个元素的长度;如果等于0,则说明字符串中没有单词,返回0即可。
下面是Java代码的实现:
```java
public int lengthOfLastWord(String s) {
// 去除字符串两端的空格
s = s.trim();
// 分割字符串
String[] words = s.split(" ");
// 判断数组长度
if (words.length > 0) {
// 返回最后一个单词的长度
return words[words.length - 1].length();
} else {
// 字符串中没有单词,返回0
return 0;
}
}
```