Leetcode Note: Go - Length of Last Word
Length of Last Word - LeetCode
https://leetcode.com/problems/length-of-last-word/
- Go 言語で取り組んだメモ
所感
- space で s を split して return された最後の要素を len すれば良さそう
実装準備
func lengthOfLastWord(s string) int {
return 0
}
func main() {
s := "Hello World" // 5
fmt.Println(lengthOfLastWord(s))
}
v1
func lengthOfLastWord(s string) int {
splited := strings.Split(s, " ")
return len(splited[len(splited)-1:len(splited)][0])
}
=> Wrong Answer
- Input が
" fly me to the moon "
の場合に moon を判定して 4 を return したいが 0 になってしまう - 調べた所 strings の TrimSpace を使えば space を取り除くことが出来そう
回答
func lengthOfLastWord(s string) int {
splited := strings.Split(strings.TrimSpace(s), " ")
return len(splited[len(splited)-1])
}
- strings.TrimSpace でスペースを除去してうまく動いた
- array, slice の last element へのアクセスは
myarray[len(myarray) - 1]
という書き方のほうがシンプルに表現できると思ったので修正 - かなり楽に実装できたものの、パフォーマンスがかなり悪い
- 今後 Easy 問題解く際に余裕があれば、パフォーマンス改善にも手を出していきたい・・・