lintcode 3 Digit Counts

本文介绍了一种统计指定数字k在从0到n的整数序列中出现次数的方法。通过将整数序列转换为字符串并利用Python内置函数进行计数,实现了高效准确的统计。文章提供了具体的Python代码实现。
3Digit Counts统计前n个元素中包含k的个数,k<9,n可以大于10,直接用str.join(list)融合数组, str.count(str(k))统计个数

 

join(): ''.join(), 无间隔的融合list为string
count(): str.count(k), 计算string中k的个数
用[]构造list: [str(i) for i in range(3)], 输出['0', '1', '2']
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sat Dec 23 21:17:24 2017

@author: vicky
"""

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 
      a=int(n/10)
      b=n-a*10
      t=0
      if a>0:
           for i in range(a):
               if i+1==k:
                   t+=1
           for i in range(b):
               if i+1==k:
                   t+=1
      else: 
           for i in range(b):
               if i+1==k:
                   t+=1
      return t
                   
  
#3. 统计数字
#计算数字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)


class Solution:  
    # @param k & n  two integer  
    # @return ans a integer  
    def digitCounts(self, k, n):  
        L = ''.join([str(i) for i in range(n+1)])  #直接融合所有string
        c = L.count(str(k))  
        return c
    
    

 

 

 

### 数字计数的加一操作实现 在数字计数的应用场景中,`digit += 1` 是实现计数器递增的一种基本操作。例如,在处理字符串时,如果需要统计其中数字字符的数量,可以通过判断每个字符是否为数字,并在条件成立时对计数器执行加一操作。 在提供的代码片段中,存在如下逻辑: ```python for i in str: if i.isalpha(): letter_nums += 1 elif i.isspace(): blank_nums += 1 elif i.isdigit(): digit_nums += 1 else: other_nums += 1 ``` 该段代码中,`digit_nums += 1` 用于在字符是数字时增加数字计数器。`isdigit()` 方法用于判断字符是否为数字字符,如果条件成立,则执行加一操作,从而正确统计数字字符的数量[^1]。 在 Python 中,加一操作通常使用 `+=` 运算符实现,其语义等价于 `digit_nums = digit_nums + 1`。这种方式简洁且易于理解,适用于所有整型变量的递增需求。 ### 实现数字计数的完整示例 以下是一个完整的数字计数实现示例,包含字符串输入和分类统计功能: ```python letter_nums = 0 blank_nums = 0 digit_nums = 0 other_nums = 0 s = input("请输入字符串:") for i in s: if i.isalpha(): letter_nums += 1 elif i.isspace(): blank_nums += 1 elif i.isdigit(): digit_nums += 1 else: other_nums += 1 print("letter = {}, blank = {}, digit = {}, other = {}".format(letter_nums, blank_nums, digit_nums, other_nums)) ``` 上述代码中,`digit_nums += 1` 在每次检测到数字字符时执行,确保最终统计结果的准确性[^1]。 ### 注意事项 在实现数字计数逻辑时,需要注意以下几点: - 确保使用 `isdigit()` 方法进行字符判断,以避免将非数字字符误判为数字。 - 初始化计数器变量时,应将其初始值设置为 0。 - 在循环中执行加一操作时,应避免重复计数或遗漏条件分支。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值