🍣

[Go/LeetCode] 58. Length of Last Word

に公開

概要

↓の解法メモです。
https://leetcode.com/problems/length-of-last-word/

問題概要

英文文字列が与えられるので、最後の単語の長さを答えます。
たとえば Go is programming language の場合、language の長さである 8 が答えになります。

解法

スペースで文字列を区切ってスライスに突っ込み、最後の要素を取り出して長さを測ります。
Go では strings.Split で区切り文字を指定した分割ができます。

func lengthOfLastWord(s string) int {
    sp := strings.Split(strings.TrimSpace(s), " ")
    return len(sp[len(sp)-1])
}

注意点として、そのまま Split するだけだと終端に空白文字が入る場合にうまくいきません。

// bad
func lengthOfLastWord(s string) int {
    sp := strings.Split(s, " ")
    return len(sp[len(sp)-1])
}

// s="   fly me   to   the moon  "
// output: 0
// expect: 4

そのため、strings.TrimSpace を使用して文字列前後の空白を取り除いています。

GitHubで編集を提案
Progate Path コミュニティ

Discussion