3. 统计数字

21 篇文章 0 订阅
11 篇文章 0 订阅

思路

计算数字k在0到n中的出现的次数,k可能是0~9的一个值
样例
    例如n=12,k=1,在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],我们发现1出现了5次 (1, 10, 11, 12)

Python

class Solution:
    """
    @param: : An integer
    @param: : An integer
    @return: An integer denote the count of digit k in 1..n
    """

    def digitCounts(self, k, n):
        # write your code here
        str_n = ''
        count = 0
        for i in range(n + 1):
            str_n += str(i)
        for ch in str_n:
            if str(k) == ch:
                count += 1
        return count


if __name__ == "__main__":
    s = Solution()
    kk = 1
    a = 12
    print(s.digitCounts(kk, a))

Go

package main

import (
    "fmt"
    "strings"
    "strconv"
)

/**
 * @param k: An integer
 * @param n: An integer
 * @return: An integer denote the count of digit k in 1..n
 */
func digitCounts(k int, n int) int {
    // write your code here
    count := 0
    for i := 0; i <= n; i++ {
        count += strings.Count(strconv.Itoa(i), strconv.Itoa(k))
    }
    return count
}

func main() {
    fmt.Println(digitCounts(1, 12))
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值