【发布时间】:2018-08-15 00:03:28
【问题描述】:
我有一个关于运行长度编码的字符串面试问题,我的解决方案是 O(n)。有什么办法可以改善吗:
- 输入是 AABBBCAAEE
- 输出假设为 A2B3C1A2E2
const firstString=(str)=>{
const arr = str.split('');
let counter = 1;
let result ='';
for (let i=0; i<arr.length; i++){
if(arr[i] === arr[i+1]){
counter++;
} else {
result +=arr[i]+counter;
counter = 1;
}
} return result
};
firstString('AABBBCAAEE');
【问题讨论】:
-
你别无选择,只能查看每个字母,所以我认为你不能做得比 O(n) 更好。
-
您是否在寻求改善大 O 时间的方法?或者您是否也对总体上改进它的方法感兴趣(比如让代码更漂亮、更简洁)?
-
我想看看有没有办法在大 O 方面进行改进
标签: javascript string algorithm encoding run-length-encoding