程序员生活不易 我用python

【第五章】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

今天就只刷了三道题,大家也可以使用编辑器自行敲写一遍,加深印象,后续还会继续发布最新刷题记录。

上一篇下一篇

猜你喜欢

热点阅读