该算法题来自于 codewars【语言: javascript】,翻译如有误差,敬请谅解~
- 任务
- 编写一个函数 accum,参数是一个字符串,仅包含来自a..z和A..Z的字母。
- 例如:
accum("abcd"); // "A-Bb-Ccc-Dddd"
accum("RqaEzty"); // "R-Qq-Aaa-Eeee-Zzzzz-Tttttt-Yyyyyyy"
accum("cwAt"); // "C-Ww-Aaa-Tttt"
- 解答
- 其一
const accum = s => [...s].map((el,index)=> el.toUpperCase() + el.toLowerCase().repeat(index)).join('-');
- 其二
const repeat = (s, n) => Array.from({length: n}, () => s).join("")
const accum = (s) => s.split("").map((c, i) => c.toUpperCase() + repeat(c.toLowerCase(), i)).join("-")
- 其三
const accum = s => Array.from(s, (c, i) => c.toUpperCase() + c.toLowerCase().repeat(i)).join('-');
- 其四
const accum = s => s.split('').map((v, i) => v.toUpperCase() + Array(i + 1).join(v.toLowerCase())).join('-');
网友评论