// https://www.codewars.com/kata/reviews/57a5c44ae08254d7a4000125/groups/57a99d9272292d50e4000a0d
// 加解密问题
// 加密是将奇数字符组成的字符串拼接偶数字符组成的字符串,执行n次
// 解密是将前半字符串与后半字符串并行循环拼接
// 该解决方案巧妙地使用正则表达式实现上述两种做法
function encrypt(text, n) {
for (let i = 0; i < n; i++) {
text = text && text.replace(/.(.|$)/g, '$1') + text.replace(/(.)./g, '$1')
}
return text
}
function decrypt(text, n) {
let l = text && text.length / 2 | 0
for (let i = 0; i < n; i++) {
// 替换后半字符串,替换时让每个字符后追加前半字符串中地字符
text = text.slice(l).replace(/./g, (_, i) => _ + (i < l ? text[i] : ''))
}
return text
}