通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。
压缩规则:
1、仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc"。
2、压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"。
var str = "xxxyyyzzcc";
var a1 = []; //定义空数组存放字符
var a2 = []; //定义空数组存放字符个数
//遍历字符串
for (var i = 0; i < str.length; i++) {
var ch = str[i]; //得到每一个字符
//如果当前字符与数组最后一个字符相等
if (ch == a1[a1.length - 1]) {
a2[a2.length - 1]++;
} else {
a1.push(ch);
a2[a2.length] = 1;
}
}
// a1-->[x,y,z,c]
// a2-->[3,3,2,2]
var str2 = ""; //定义空字符串,存放新字符串
//循环拼接
for (var i = 0; i < a1.length; i++) {
str2 = str2 + a2[i] + a1[i];
}
//去掉1
str2 = str2.split("1").join("");
document.write(str2);