赞
踩
- #字符串匹配
- class Solution(object):
- def countSeniors(self, details):
- """
- :type details: List[str]
- :rtype: int
- """
- ans = 0
- for person in details:
- if int(person[11:13]) > 60:
- ans+=1
- return ans
- #动态规划
- class Solution(object):
- def numRollsToTarget(self, n, k, target):
- """
- :type n: int
- :type k: int
- :type target: int
- :rtype: int
- """
- # mod = 10**9 + 7
- # f = [[0] * (target + 1) for _ in range(n + 1)]
- # f[0][0] = 1
- # for i in range(1, n + 1):
- # for j in range(i,target + 1):
- # for x in range(1, k + 1):
- # if j - x >= 0:
- # f[i][j] = (f[i][j] + f[i - 1][j - x]) % mod
- # return f[n][target]
- mod = 10**9 + 7
- f = [1] + [0] * target
- #挨个拿n个骰子
- for i in range(1, n + 1):
- g = [0] * (target + 1)
- for j in range(i,target + 1):
- for x in range(1, k + 1):
- if j - x >= 0:
- g[j] = (g[j] + f[j - x]) % mod
- f = g
- return f[target]

- #回溯 难
- class Solution(object):
- def punishmentNumber(self, n):
- """
- :type n: int
- :rtype: int
- """
- def dfs(s, pos, tot, target):
- if pos == len(s):
- return tot == target
- sum = 0
- for i in range(pos, len(s)):
- sum = sum * 10 + int(s[i])
- if sum + tot > target:
- break
- if dfs(s, i + 1, sum + tot, target):
- return True
- return False
- res = 0
- for i in range(1, n + 1):
- if dfs(str(i * i), 0, 0, i):
- res += i * i
- return res

- from collections import Counter
- class Solution(object):
- def countDigits(self, num):
- """
- :type num: int
- :rtype: int
- """
- ans = 0
- tmp = dict(Counter(str(num)))
- for k,v in tmp.items():
- if num % int(k) == 0:
- ans += v
-
- return ans
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。