用户:
卑微OIer查看:3 回复:2 评论:3 创建时间:2023-01-24T20:54:31
如题,给定字符串)整一个算法
function encode(string){} // 返回字符串编码后的字符串或数组
function decode(string){} // 解码
编码后的字符串越短越好,压缩率越短越好,在线等急
SCS_user_LoeheodVOQfunction encode(text) {
let zipedText = ''
let lastTwo = ''
let continuity = 1
for (let index = 0; index < text.length; index += 2) {
now = text[index] + text[index + 1]
if (now === lastTwo && continuity < 99) {
continuity++
} else {
if (continuity > 1) {
zipedText += String(continuity).length === 2 ? String(continuity) : ' ' + String(continuity)
continuity = 1
}
zipedText += now
}
lastTwo = now
}
if (continuity > 1) {
zipedText += String(continuity).length === 2 ? String(continuity) : ' ' + String(continuity)
continuity = 1
}
return zipedText
}
function decode(zipedText) {
let text = ''
let lastTwo = zipedText[0] + zipedText[1]
for (let index = 0; index < zipedText.length; index += 2) {
now = zipedText[index] + zipedText[index + 1]
continuity = Number(now)
for (let i = 0; i < continuity - 1; i++) {
text += lastTwo
}
if (!(continuity > 1 && continuity < 100)) {
text += now
}
lastTwo = now
}
return text
}
好久之前写的代码()()好像是只能压缩没有数字没有空格的()()就是直接压缩重复部分()要是不行就用b64试试()
点赞0
评论