Python每日一练(20230408)

简介: Python每日一练(20230408)

1. 两数相除


给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。


返回被除数 dividend 除以除数 divisor 得到的商。


整数除法的结果应当截去(truncate)其小数部分,例如:


truncate(8.345) = 8 以及 truncate(-2.7335) = -2


示例 1:

输入: dividend = 10, divisor = 3

输出: 3

解释: 10/3 = truncate(3.33333..) = truncate(3) = 3


示例 2:

输入: dividend = 7, divisor = -3

输出: -2

解释: 7/-3 = truncate(-2.33333..) = -2


提示:

   被除数和除数均为 32 位有符号整数。

   除数不为 0。

   假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231,  231 − 1]。本题中,如果除法结果溢出,则返回 231 − 1。


出处:

https://edu.csdn.net/practice/25023633

代码:

import math
class Solution(object):
    def divide(self, dividend, divisor):
        if divisor == 0:
            return MAX_INT
        if dividend == 0:
            return 0
        isPositive = (dividend < 0) == (divisor < 0)
        m = abs(dividend)
        n = abs(divisor)
        res = math.log(m) - math.log(n)
        res = int(math.exp(res))
        if isPositive:
            return min(res, 2147483647)
        return max(0 - res, -2147483648)
if __name__ == '__main__':
    s = Solution()
    print(s.divide(10, 3))
    print(s.divide(7, -3))


输出:

3

-2


2. 分割回文串


给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。


回文串 是正着读和反着读都一样的字符串。


示例 1:

输入:s = "aab"

输出:[["a","a","b"],["aa","b"]]


示例 2:

输入:s = "a"

输出:[["a"]]


提示:

   1 <= s.length <= 16

   s 仅由小写英文字母组成


出处:

https://edu.csdn.net/practice/25023634

代码:

import math
class Solution(object):
    def partition(self, s):
        """
        :type s: str
        :rtype: List[List[str]]
        """
        if len(s) == 0:
            return []
        else:
            res = []
            self.dividedAndsel(s, [], res)
        return res
    def dividedAndsel(self, s, tmp, res):
        if len(s) == 0:
            res.append(tmp)
        for i in range(1, len(s) + 1):
            if s[:i] == s[:i][::-1]:
                self.dividedAndsel(s[i:], tmp + [s[:i]], res)
if __name__ == '__main__':
    s = Solution()
    print(s.partition("aab"))
    print(s.partition("a"))

输出:

[['a', 'a', 'b'], ['aa', 'b']]

[['a']]


3. x 的平方根


实现 int sqrt(int x) 函数。

计算并返回 x 的平方根,其中 x 是非负整数。

由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。


示例 1:

输入: 4

输出: 2

示例 2:

输入: 8

输出: 2

说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。

出处:

https://edu.csdn.net/practice/25023635

代码:

class Solution:
    def mySqrt(self, x):
        if x < 0:
            return 0
        if x < 4:
            return 1
        res = 2 * self.mySqrt(x / 4)
        if 0 <= (res + 1) * (res + 1) <= x:
            return res + 1
        return  res
# %%
s = Solution()
print(s.mySqrt(4))
print(s.mySqrt(8))

输出:

2

2

二分法:

class Solution:
    def mySqrt(self, x):
        left, right = 0, x
        res = -1
        while left <= right:
            mid = (left + right)//2
            tmp = mid * mid
            if tmp <= x:
                res = mid
                left = mid + 1
            else:
                right = mid - 1
        return  res


目录
相关文章
|
Python 人工智能
讯飞星火、文心一言和通义千问同时编“贪吃蛇”游戏,谁会胜出?
讯飞星火、文心一言和通义千问同时编“贪吃蛇”游戏,谁会胜出?
271 1
讯飞星火、文心一言和通义千问同时编“贪吃蛇”游戏,谁会胜出?
|
Shell Unix Linux
Linux 终端命令之文件浏览(3) less
Linux 终端命令之文件浏览(3) less
200 0
Linux 终端命令之文件浏览(3) less
|
Rust
Rust 编程小技巧摘选(8)
Rust 编程小技巧摘选(8)
386 0
Rust 编程小技巧摘选(8)
|
算法 C++ 机器人
力扣 C++|一题多解之动态规划专题(1)
力扣 C++|一题多解之动态规划专题(1)
152 0
力扣 C++|一题多解之动态规划专题(1)
|
C++ Python 索引
Python Numpy入门基础(二)数组操作
Python Numpy入门基础(二)数组操作
213 0
Python Numpy入门基础(二)数组操作
|
C++ 存储
力扣C++|一题多解之数学题专场(1)
力扣C++|一题多解之数学题专场(1)
200 0
力扣C++|一题多解之数学题专场(1)
|
Java Go C++
Golang每日一练(leetDay0118) 扁平化嵌套列表迭代器、整数拆分
Golang每日一练(leetDay0118) 扁平化嵌套列表迭代器、整数拆分
178 0
Golang每日一练(leetDay0118) 扁平化嵌套列表迭代器、整数拆分
|
Java Go C++
Golang每日一练(leetDay0114) 矩阵中的最长递增路径、按要求补齐数组
Golang每日一练(leetDay0114) 矩阵中的最长递增路径、按要求补齐数组
212 0
Golang每日一练(leetDay0114) 矩阵中的最长递增路径、按要求补齐数组
|
Java Go C++
Golang每日一练(leetDay0110) 零钱兑换I\II Coin Change
Golang每日一练(leetDay0110) 零钱兑换I\II Coin Change
205 0
Golang每日一练(leetDay0110) 零钱兑换I\II Coin Change
|
Java Go Rust
Rust每日一练(Leetday0030) 合并有序数组、格雷编码、子集II
Rust每日一练(Leetday0030) 合并有序数组、格雷编码、子集II
176 0
Rust每日一练(Leetday0030) 合并有序数组、格雷编码、子集II

热门文章

最新文章

推荐镜像

更多