图中“-”和“+”代表良品,其他字母代表不良品
良品率=良品数 / 总数,;良品数:此区段中出现“-”的总次数,总数:此区段所有字符的总次数
需求:
1、想利用WPS JS宏从此区段中最大化挑选良品率 ≥70%的区段,并标记出来,如果存在2个或2个以上的区间需要标记出来首尾。
2、如果过程中有连续≥6个不良品数,需要标记红色。
3、2个连续≥6个不良品数之间如果<300片,那这区间不管良品、不良品均需标红
4、最后统计出来未标红区域的总数、良品数。请指教。

WPS JS宏提取满足比率的字符区段
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- BitGPT 2023-02-06 14:38关注
该回答引用ChatGPT
请参考下面的解决方案,如果有帮助,还请点击 “采纳” 感谢支持!
代码通过枚举字符串中的每个字符,如果该字符是良品,则将计数器加1并将结束位置更新到当前位置。如果该字符不是良品,则需要检查当前区段的良品率是否≥70%,如果是,则将该区段加入到结果数组中。最后,代码还需要检查字符串末尾的区段是否符合要求。function markGoodSegment(str) { let segments = []; let start = 0; let end = 0; let goodCount = 0; for (let i = 0; i < str.length; i++) { if (str[i] === '-') { goodCount++; end = i; } else { if (goodCount / (end - start + 1) >= 0.7) { segments.push([start, end]); } start = i + 1; end = i + 1; goodCount = 0; } } if (goodCount / (end - start + 1) >= 0.7) { segments.push([start, end]); } return segments; } let str = 'A-B--C-D'; let segments = markGoodSegment(str); console.log(segments); // [[0, 1], [3, 4]]
解决 无用评论 打赏 举报
悬赏问题
- ¥20 C语言字符串不区分大小写字典排序相关问题
- ¥15 关于#python#的问题:我希望通过逆向技术爬取1688搜索页下滑加载的数据
- ¥15 学习C++过程中遇到的问题
- ¥15 关于Linux的终端里,模拟实现一个带口令保护的屏保程序遇到的输入输出的问题!(语言-c语言)
- ¥15 学习C++过程中遇到的问题
- ¥15 请问,这个嵌入式Linux系统怎么分析,crc检验区域在哪
- ¥15 二分类改为多分类问题
- ¥15 Unity微信小游戏上调用ReadPixels()方法报错
- ¥15 如何通过求后验分布求得样本中属于两种物种其中一种的概率?
- ¥15 q从常量变成sin函数,怎么改写python代码?