Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
坏掉的打印机有多坏(Javascript算法) 任务_Javascript_Algorithm - Fatal编程技术网

坏掉的打印机有多坏(Javascript算法) 任务

坏掉的打印机有多坏(Javascript算法) 任务,javascript,algorithm,Javascript,Algorithm,在工厂里,打印机为盒子打印标签。一种盒子 为了简单起见,打印机必须使用以下颜色: 以字母a到m命名 打印机使用的颜色记录在控制字符串中。对于 示例一个“好”的控制字符串是aaabbbhaijjjm,意思是 打印机使用了三次a色,四次b色,一次 颜色h然后是一次颜色a 有时会出现问题:缺少颜色、技术故障 并生成一个“坏”控制字符串,例如aaaxbbbbyyhwawiwjwwm 信不是从a到m 您必须编写一个函数printer_error,给定一个字符串将 将打印机的错误率输出为表示错误的字符串 有

在工厂里,打印机为盒子打印标签。一种盒子 为了简单起见,打印机必须使用以下颜色: 以字母a到m命名

打印机使用的颜色记录在控制字符串中。对于 示例一个“好”的控制字符串是aaabbbhaijjjm,意思是 打印机使用了三次a色,四次b色,一次 颜色h然后是一次颜色a

有时会出现问题:缺少颜色、技术故障 并生成一个“坏”控制字符串,例如aaaxbbbbyyhwawiwjwwm 信不是从a到m

您必须编写一个函数printer_error,给定一个字符串将 将打印机的错误率输出为表示错误的字符串 有理数,其分子是错误数和分母 控制字符串的长度。不要把这个分数减少到a 更简单的表达

字符串的长度大于或等于1,并且只包含 来自澳大利亚税务局的信

示例: 我的尝试 好的,我非常抱歉代码太长(可能要短得多):

函数打印错误{
设regex=/[a-m]/g
设winCount=0;
设totalCount=0;
s、 拆分(“”).map((项目)=>{
totalCount++;
if(正则表达式测试(项目)){
winCount++;
}
})
设a=winCount/totalCount;
设b=(十进制)=>{
对于(变量分母=1;(十进制*分母)%1!==0;分母++);
返回{分子:十进制*分母,分母:分母};
}
设c=b(a);
设d=对象值(c);
设e=d.toString();
设regex2=/,/;
设f=e.replace(regex2,“/”);
返回f;
};

log(printerError('adfsdgdsrwe')就像评论中已经提到的那样,你误解了任务,让自己被分母的东西弄糊涂了。这样很难“修复”你的代码。您只需要识别错误字母的数量和字符串的长度。使用正则表达式的想法很好。我建议你用另一种方法来计算不匹配字母的数量

let error\u printer=(s)=>{
//计算所有匹配项,这些匹配项与正在查找字母的regexp匹配,
//不在a-m范围内。如果未找到,请使用0。
//然后用字符串的长度追加/。
返回(s.match(/[^a-m]/g)?.length | | 0)+“/”+s.length;
}
设s=“aaabbbhaijjjjm”
console.log(打印机错误)//=>“0/14”
s=“aaaxbbyywhawijjwwm”

console.log(打印机错误);//=>“8/22”
非常感谢,尽管我希望能明白我到底做错了什么:)我不知道我是否理解得很好。。您想创建一个函数,返回关于字符串总长度的错误商,是吗?@AndrownedShelp特别注意“一个有理数,其分子是错误数,分母是控制字符串的长度。不要将此分数减少为更简单的表达式。”你所要做的就是
返回errorCount+'/'+totalCount
@edit我会把它放在codepen里,这里没有很好的识别:
s="aaabbbbhaijjjm"
error_printer(s) => "0/14"

s="aaaxbbbbyyhwawiwjjjwwm"
error_printer(s) => "8/22"