【第五章】python算法刷题开始(1)
2018-08-01 本文已影响1人
你好夜故事
有了python基础知识积累,决定再花些时间巩固一下,这样在后期项目开发中会更加轻松,废话不多说,是用的刷题网站是lintCode,直接看题:
1、A+B问题:
A+B问题非标准型答案:
class Solution:
"""
@param a: An integer
@param b: An integer
@return: The sum of a and b
"""
def aplusb(self, a, b):
return a+b
2、尾部的零
尾部的零非标准型答案:
class Solution:
"""
@param: n: An integer
@return: An integer, denote the number of trailing zeros in n!
"""
def trailingZeros(self,n):
count = 0
sum=n
sign=1
while n>1:
sum=sum*(n-1)
n=n-1
sumStr = str(sum);
length = len(sumStr)-1
while length>=0 and sign==1:
if int(sumStr[length])==0:
count+=1
else:
sign=0
length-=1
return count
答案分析:上面的程序在lintCode上面,效率是不过关的,后期进行优化
3、统计数字
统计数字class Solution:
"""
@param k: An integer
@param n: An integer
@return: An integer denote the count of digit k in 1..n
"""
def digitCounts(self, k, n):
i = 0
count = 0
while i<=n:
tempStr = str(i);
j=0
while j<len(tempStr):
if(int(tempStr[j])==k):
count+=1
j+=1
i+=1
return count
今天就只刷了三道题,大家也可以使用编辑器自行敲写一遍,加深印象,后续还会继续发布最新刷题记录。