mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-05 08:27:30 +08:00
70 lines
1.5 KiB
Markdown
70 lines
1.5 KiB
Markdown
# [58. Length of Last Word](https://leetcode.com/problems/length-of-last-word/)
|
||
|
||
|
||
## 题目
|
||
|
||
Given a string `s` consisting of some words separated by some number of spaces, return *the length of the **last** word in the string.*
|
||
|
||
A **word** is a maximal substring consisting of non-space characters only.
|
||
|
||
**Example 1:**
|
||
|
||
```
|
||
Input: s = "Hello World"
|
||
Output: 5
|
||
Explanation: The last word is "World" with length 5.
|
||
|
||
```
|
||
|
||
**Example 2:**
|
||
|
||
```
|
||
Input: s = " fly me to the moon "
|
||
Output: 4
|
||
Explanation: The last word is "moon" with length 4.
|
||
|
||
```
|
||
|
||
**Example 3:**
|
||
|
||
```
|
||
Input: s = "luffy is still joyboy"
|
||
Output: 6
|
||
Explanation: The last word is "joyboy" with length 6.
|
||
|
||
```
|
||
|
||
**Constraints:**
|
||
|
||
- `1 <= s.length <= 104`
|
||
- `s` consists of only English letters and spaces `' '`.
|
||
- There will be at least one word in `s`.
|
||
|
||
## 题目大意
|
||
|
||
给你一个字符串 `s`,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。**单词** 是指仅由字母组成、不包含任何空格字符的最大子字符串。
|
||
|
||
## 解题思路
|
||
|
||
- 先从后过滤掉空格找到单词尾部,再从尾部向前遍历,找到单词头部,最后两者相减,即为单词的长度。
|
||
|
||
## 代码
|
||
|
||
```go
|
||
package leetcode
|
||
|
||
func lengthOfLastWord(s string) int {
|
||
last := len(s) - 1
|
||
for last >= 0 && s[last] == ' ' {
|
||
last--
|
||
}
|
||
if last < 0 {
|
||
return 0
|
||
}
|
||
first := last
|
||
for first >= 0 && s[first] != ' ' {
|
||
first--
|
||
}
|
||
return last - first
|
||
}
|
||
``` |