🍣
[Go/LeetCode] 58. 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
を使用して文字列前後の空白を取り除いています。
Discussion