天天看点

LeetCode 两数之和 / 整数反转 / 回文数 (1)题库 - 力扣 - 简单1. 两数之和7. 整数反转9. 回文数

题库 - 力扣 - 简单

1. 两数之和

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9

所以返回 [0, 1]

class Solution(object):
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        hashmap = {}
        for index, num in enumerate(nums):
            another_num = target - num
            if another_num in hashmap:
                return [hashmap[another_num], index]
            hashmap[num] = index
        return None
           
LeetCode 两数之和 / 整数反转 / 回文数 (1)题库 - 力扣 - 简单1. 两数之和7. 整数反转9. 回文数

7. 整数反转

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

示例 1:

输入: 123

输出: 321

示例 2:

输入: -123

输出: -321

示例 3:

输入: 120

输出: 21

注意:

假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [− 2 31 , 2 31 − 1 2^{31}, 2^{31} − 1 231,231−1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

class Solution(object):
    def reverse(self, x):
        """
        :type x: int
        :rtype: int
        """
        num = 0
        if x == 0:
            return 0
        if x < 0:
            x = -x
            while x != 0:
                num = num*10 + x%10
                x = x/10
            num = -num
        else:
            while x != 0:
                num = num*10 + x%10
                x = x/10
            
        if num>pow(2,31)-1 or num < pow(-2,31):
            return 0
        return num
           
LeetCode 两数之和 / 整数反转 / 回文数 (1)题库 - 力扣 - 简单1. 两数之和7. 整数反转9. 回文数
class Solution(object):
    def reverse(self, x):
        """
        :type x: int
        :rtype: int
        """
        plus_minus = ""
        reverse_x = ""
        if x<0:
            plus_minus = "-"
            x = -x
        for i in str(x):
            reverse_x = i + reverse_x
        reverse_x = plus_minus +reverse_x
        if int(reverse_x)>pow(2,31)-1 or int(reverse_x)<pow(-2,31):
            return 0
        return int(reverse_x)
           
LeetCode 两数之和 / 整数反转 / 回文数 (1)题库 - 力扣 - 简单1. 两数之和7. 整数反转9. 回文数

9. 回文数

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

示例 1:

输入: 121

输出: true

示例 2:

输入: -121

输出: false

解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。

示例 3:

输入: 10

输出: false

解释: 从右向左读, 为 01 。因此它不是一个回文数。

class Solution(object):
    def isPalindrome(self, x):
        """
        :type x: int
        :rtype: bool
        """
        return str(x) == str(x)[::-1]
           
LeetCode 两数之和 / 整数反转 / 回文数 (1)题库 - 力扣 - 简单1. 两数之和7. 整数反转9. 回文数
class Solution(object):
    def isPalindrome(self, x):
        """
        :type x: int
        :rtype: bool
        """
        temp = x
        inv_x = 0
        
        while temp > 0:
            inv_x = inv_x * 10 + (temp % 10)
            temp = temp // 10
            
        return inv_x == x
           
LeetCode 两数之和 / 整数反转 / 回文数 (1)题库 - 力扣 - 简单1. 两数之和7. 整数反转9. 回文数
上一篇: 谈谈 KVO