js字符串处理,大家有什么好的答案?

输入 字符串 aaaaaabbbbbccccddac
输出 a6b5c4d2a1c1

用JavaScript 语言
或其他语言都可以

阅读 2.9k
4 个回答

Here comes oneliner

const countSuccession = s => s.match(/(.)\1*/g).reduce((r, x) => r + x[0] + x.length, '')
console.log(countSuccession('aaaaaabbbbbccccddac'))
var result = '';
'aaaaaabbbbbccccddac'.match(/(.)\1*/g).map(function (item) {
  result += item[0] + item.length;
});
console.log(result);
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>

        var strr = 'aaaaaabbbbbccccddac';
        function handleStr(str) {
                var n = 1;
                var srtn = '';
                for (i = 0; i < str.length; i++) {
                    if (str[i] == str[i + 1]) {
                        n++;
                    } else {
                        srtn += str[i]+n;
                        n = 1;
                    }

                }
                console.log(srtn);
                return srtn;
            }

            handleStr(strr);
    </script>
</body>
</html>

使用哈希表,对字母和出现次数仅从存储就好。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题