LeetCode 68 Text Justification

# @param {String[]} words
# @param {Integer} max_width
# @return {String[]}
def full_justify(words, max_width)
    temp_str = ""
    j_words = []

    words.each do |word|
      if temp_str == ""
        if (temp_str + word).length <= max_width
          temp_str = temp_str + word
        else
          j_words.push(justify_spaces(temp_str, max_width))
          temp_str = word
        end
      else
        if (temp_str + " " + word).length <= max_width
          temp_str = temp_str + " " + word
        else
          j_words.push(justify_spaces(temp_str, max_width))
          temp_str = word
        end
      end
    end

    new_last = temp_str.split(" ").join(" ")
    last_len = max_width - new_last.length
    last_len.times do |i|
      new_last = new_last + " "
    end

    j_words.push(new_last)
    j_words
end

def justify_spaces(temp_str, max_width)
  s_words = temp_str.split(" ")
  s_len = s_words.length

  space_count = max_width - temp_str.gsub(" ", "").length
  space_count.times do |i|
    index = 0
    if s_len > 1
      index = i % (s_len - 1)
    end
    s_words[index] = s_words[index].to_s + " "
  end
  s_words.join("")
end
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值