javascript - 计算子串的数量
问题描述
我在解决以下编码挑战时遇到了困难:
描述:
给定一个表示为字符串数字的正整数。任务是计算形成可被3整除的整数的子字符串的数量。
示例:number = "456"输出应该是3因为:
4不能被 3 整除
5不能被 3 整除
6可以被3 整除
45可以被3 整除
56不能被 3 整除
456能被3整除
这是我的实现:
function threeDivisibleSubsequences(number) {
let count = 0
for (i of number) {
if (i % 3 == 0) {
count += 1
}
}
return count
}
console.log(threeDivisibleSubsequences("456"))
基本上,我需要找到一种“正确”进行内部或第二个循环的方法,或者找到另一种方法......
解决方案
蛮力方法是将数字转换为字符串,然后遍历字符串的每个可能的 2-index。把子串变成一个数字并检查它的可分性。
const threeDivisibleSubsequences = (input) => {
let count = 0;
for (let i = 0; i < input.length; i++) {
for (let j = i; j < input.length; j++) {
if (Number(input.slice(i, j + 1)) % 3 === 0) {
count++;
}
}
}
return count;
};
console.log(threeDivisibleSubsequences('456'));
推荐阅读
- python - 识别 Pandas DataFrame 列中缺失的日期数据
- javascript - Vue.js - 带有动态 v-if 的动态按钮
- sql - 子查询返回超过 1 个值。只有拆分我的查询才能解决这个问题
- java - 正则表达式捕获#Facilitator:"Full Name
"标签 - linux - 我可以坚持使用来自 nginx 的 server_name 指令,还是仍然需要在 linux 中设置 DNS?
- unity3d - JDK、SDK 和 Gradle 错误尝试为 Android 构建 Unity 游戏
- javascript - 从过滤表中选择元素
- python - python中是否有类似于REXX PARSE的解析语句
- internet-explorer - 缓存控制标头不适用于 IE11
- c++ - 将两个cpp文件合并为一个cpp文件