牛客网-剑指offer[编程题]整数中1出现的次数(从1到n整数中1出现的次数) js详解

在这里插入图片描述
js中如何将数组转换成字符串 array.jion()

js中如何将字符串转换成数组 array.split()

我用了两个函数解决这个问题,一个函数把 1-n的数存入数组再转化为字符串
一个函数把字符串里 1 的个数统计出来
str.indexOf(char)是字符串中第一次出现char的位置

stringObject.indexOf(searchvalue,fromindex)

searchvalue 必需。规定需检索的字符串值。
fromindex 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。

说明

该方法将从头到尾地检索字符串 stringObject,看它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的开头(没有指定 fromindex 时)。如果找到一个 searchvalue,则返回 searchvalue 的第一次出现的位置。stringObject 中的字符位置是从 0 开始的。

function NumberOf1Between1AndN_Solution(n)
{
    var arr = [];
    var sum = 0;
    for(var i = 1; i <= n; i++){
        arr.push(i);
    }
    var item=arr.join();
    sum = strCharPosition(item, '1')
    return sum;
}

function strCharPosition(str, char) {
    var pos;
    var arr = [];
    pos = str.indexOf(char);
    while (pos > -1) {
        arr.push(pos);
        pos = str.indexOf(char, pos + 1);
    }
    return arr.length;
};
NumberOf1Between1AndN_Solution(13)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值