classSolution:"""@param a: An integer@param b: An integer@return: The sum of a and b """defaplusb(self, a, b):# write your code herereturn a + b
方法二:
classSolution:"""@param a: An integer@param b: An integer@return: The sum of a and b """defaplusb(self, a, b):# write your code herereturnsum([a, b])
方法三:
from operator import addclassSolution:"""@param a: An integer@param b: An integer@return: The sum of a and b """defaplusb(self, a, b):# write your code herereturn add(a, b)
classSolution:"""@param n: A long integer@return: An integer, denote the number of trailing zeros in n!"""deftrailingZeros(self, n):# write your code herenum =0i =5while n>=i:num += n//ii = i *5return num
3 · 統計數字
方法一:偷個懶直接用python的內置函數 cout來做,可以用來查找一個字符串中指定字符的個數
classSolution:"""@param k: An integer@param n: An integer@return: An integer denote the count of digit k in 1..n"""defdigitCounts(self, k, n):# write your code hereresult =0for item inrange(0, n+1):number =str(item).count(str(k))result += numberreturn result
方法二: 笨笨的方法對每個數都進行統計,能力所限,懶得優化了,據大佬說可以優化到O(logN)
classSolution:"""@param k: An integer@param n: An integer@return: An integer denote the count of digit k in 1..n"""defdigitCounts(self, k, n):# write your code hereresult =0if k ==0:result +=1for i inrange(n+1):temp = iwhile temp:if temp %10== k:result +=1temp//=10return result
方法三:大佬的方法,感興趣的看看就好
classSolution:"""@param: : An integer@param: : An integer@return: An integer denote the count of digit k in 1..n"""defdigitCounts(self, k, n):deften(power):return10**powerdigits = self.getNumOfDigits(n)ans =0if k ==0:for i inrange(digits-1):ans +=(n // ten(i+1)-1)* ten(i)ans +=min(n % ten(i+1), ten(i)-1)+1ans +=1else:for i inrange(digits):ans += n // ten(i+1)* ten(i)ans +=max(0,min((k+1)*ten(i)-1, n%ten(i+1))- k*ten(i)+1)return ans@staticmethoddefgetNumOfDigits(n):if n ==0:return1count =0while n:count +=1n //=10return count
classSolution:"""@param n: An integer@return: the nth prime number as description."""defnthUglyNumber(self, n):# write your code hereheap =[1]p2,p3,p5 =0,0,0for i inrange(n -1):last = heap[-1]while heap[p2]*2<= last:p2 +=1while heap[p3]*3<= last:p3 +=1while heap[p5]*5<= last:p5 +=1heap.append(min(heap[p2]*2, heap[p3]*3, heap[p5]*5))return heap[-1]