LeetCode每日一题|482. 密钥格式化

111 阅读1分钟
  • 题目描述

题目链接:leetcode-cn.com/problems/li… image.png

  • 思路分析

该题相当于是将一个带-的字符串在去掉-后分成多个部分,除第一个部分外每个部分有k个字符,每个部分间以-连接。

所以我们可以先将给定字符中的-去掉,然后计算出第一个部分的长度,然后再加上后续部分和-;第一个部分的长度为给定字符串的长度余k,然后每个每个部分通过slice取出连在一起并大写即可。

  • 代码

var licenseKeyFormatting = function (s, k) {
  let ss = s.replaceAll("-","");
  let first = ss.length % k;
  first = first ? first : k;
  let t = (ss.length - first) / k;
  let res = ss.slice(0, first).toUpperCase();
  for (let i = 0; i < t; i++) {
    res += '-' + ss.slice(first + i * k, first + i * k + k).toUpperCase();
  }
  return res;
};