我有一种情况需要以这种方式压缩字符串:
"AAABBBCCCDDD" => "A3B3C3D3", or
"ABBCCCDDDDEEEEE" => "A1B2C3D4E5", or
"FOOFOO" => "F1O2F1O2", this one is the one I can't solve
我正在用 JavaScript 做这个,到目前为止我已经想出了这个:
function in_array(key, array) {
for(var x in array) {
if(array[x] == key) {
return true;
}
}
return false;
}
function compress(str) {
var str_splitted = str.split('');
var new_strings = [];
for(var x in str_splitted) {
if(!in_array(str_splitted[x], new_strings)) {
new_strings.push( str_splitted[x] );
new_strings.push( (str.split(str_splitted[x]).length - 1) );
}
}
return new_strings.join('');
}
因此,使用我的代码片段,两个示例将完美运行,但第三个示例将计算所有匹配的字符,因此输出:
"FOOFOO" => "F2O3", and not "F1O2F1O2"
对于这个问题,我真的需要帮助、提示、建议和/或更好的解决方案,我感谢所有帮助我的人!