LeetCode 题目-1/7/9 (python实现)

作为要准备踏入码农行业的人来说,要准备校招,怎么能不去刷刷LeetCode呢?

1. 两数之和

  • 题目要求:
    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
  • 示例:
给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
  • 分析:
    访问两边数组,第一遍用target-num[i],第二遍找target-num[i]是否存在nums,找到就返回这两个组成的数字。
class Solution:
     def twoSum(self,num,target):
        for i in range(0,len(num)):
            a =target-num[i]
            if a in num:
                y =num.index(a)
                if i == y:
                    continue
                else:
                    return i,y
                    break
            else:
                continue

7. 整数反转

  • 题目要求:
    给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
  • 示例:
输入: 123
输出: 321

输入: -123
输出: -321

输入: 120
输出: 21

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

  • 分析:
    根据提示的注意,首先判断范围,再按正负数依次判断。通过取余数反转数字。
class Solution:
     def twoSum(self,num,target):
        for i in range(0,len(num)):
            a =target-num[i]
            if a in num:
                y =num.index(a)
                if i == y:
                    continue
                else:
                    return i,y
                    break
            else:
                continue

9. 回文数

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

  • 示例:

输入: 121
输出: true

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

输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
  • 分析:
    方法一:根据题目7整数反转进行解题
class Solution:
    def isPalindrome(self,x):
        """
        :rtype: bool
        """
        if(x<0):
            return False
        else:
            renum = 0
            t = x
            while(t!=0):
                renum = renum*10+t%10
                t = t//10
            if(renum == x):
                return True
            else:
                return  False

方法二 以字符串的形式进行前后对应位置的比较判断

class Solution:
    def isPalindrome(self,x):
        """
        :rtype: bool
        """
        if(x<0):
            return False
        else:
            y  = str(x)
            z = []
            for i in y:
                z.append(i)
            for t in range(0,len(z)//2):
                if(z[t]!=z[len(z)-1-t]):
                    return False
            return True

猜你喜欢

转载自blog.csdn.net/qq_39884947/article/details/85228957