Leetcode Note: Go - Number of Lines to Write String

Number of Lines To Write String - LeetCode
https://leetcode.com/problems/number-of-lines-to-write-string/

  • Go 言語で取り組んだメモ

所感

  • string s, int 配列 width が与えられる
  • 各行が 100 ピクセルを超えないように s に書き込もうとしている
  • 合計幅が 100 ピクセルを超えないように、できるだけ多くの文字を書き込む
  • s で止まった所から、 2行目 にできるだけ多くの文字を書き込む
  • すべての s を書き込むまで続ける
  • int 配列として 0: 合計行数, 1: ピクセルに含まれる最終行の width を return する

回答

Number of Lines To Write String - LeetCode
https://leetcode.com/problems/number-of-lines-to-write-string/solution/

Go solution - LeetCode Discuss
https://leetcode.com/problems/number-of-lines-to-write-string/discuss/964069/Go-solution

func numberOfLines(widths []int, S string) []int {
    count := 0
    lineCount := 1
    for _, e := range S {
        if count + widths[e-'a'] <= 100 { 
            count += widths[e-'a'] 
        }else {
            lineCount++
            count = widths[e-'a']
        }
    }
    return []int{lineCount, count}
}