zoukankan      html  css  js  c++  java
  • LeetCode题目(python)

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

    你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

    示例:

    给定 nums = [2, 7, 11, 15], target = 9
    
    因为 nums[0] + nums[1] = 2 + 7 = 9
    所以返回 [0, 1]

    计算:

    方法一:(5848 ms)
    class Solution:
        def twoSum(self, nums, target):
            a=[]
            length=len(nums)
            for i in range(0,length-1):
                for j in range(i+1,length):
                    if(nums[i]+nums[j]==target):                                 
                        return [i,j]
    方法二:(48 ms)                    
    class Solution:
        def twoSum(self, nums, target):
            a=[]
            length=len(nums)
            for i in range(0,length-1):
                for j in range(i+1,length):
                    if(nums[i]+nums[j]==target):                                 
                        return [i,j]
    方法三:(1152 ms)
    class Solution:
        def twoSum(self, nums, target):
            length=len(nums)
            dict={}
            for i in range(length):
                var=target-nums[i]
                if var in nums and i!=nums.index(var):
                    return [i,nums.index(var)]
    两数之和

    2.计算最长回文字串

    def longestPalindrome( s):
        if len(s) < 2 or s == s[::-1]:
            return s
        n = len(s)
        # 定义起始索引和最大回文串长度,odd奇,even偶
        start, maxlen = 0, 1
        # 因为i=0的话必然是不可能会有超过maxlen情况出现,所以直接从1开始
        for i in range(1, n):
            # 取i及i前面的maxlen+2个字符
            odd = s[i - maxlen - 1:i + 1]  # len(odd)=maxlen+2
            # 取i及i前面的maxlen+1个字符
            even = s[i - maxlen:i + 1]  # len(even)=maxlen+1
    
            print("i="+str(i)+";	"+"maxlen="+str(maxlen)+";	odd="+odd+";"+"	"+"even="+even)
            if i - maxlen - 1 >= 0 and odd == odd[::-1]:
                start = i - maxlen - 1
                maxlen += 2
                continue
            if i - maxlen >= 0 and even == even[::-1]:
                start = i - maxlen
                maxlen += 1
            #print(s[start:start + maxlen])
        return s[start:start + maxlen]
    
    s="abaqw"
    # b=s[-1:2]
    # print(b)
    a=longestPalindrome(s)
    print(a)
    最长回文字串
  • 相关阅读:
    Spring Boot之@ImportResource、配置类、占位符表达式
    Spring Boot之测试类报错问题
    Spring Boot之@EnableAutoConfiguration源码解读
    Spring Boot之第一个程序及执行原理。
    eclipse中git使用中的冲突解决
    python画国旗
    第十六周进度
    个人课程总结
    人月神话之阅读笔记03
    第十五周进度
  • 原文地址:https://www.cnblogs.com/vanoraxnc/p/10214848.html
Copyright © 2011-2022 走看看