• leetcode 简单


    1. 两数之和

    两数之和

    方法1:暴力枚举
    两次for 循环,记录索引和值,找到合适的值然后返回

    方法2:使用哈希表
    第一次for循环的时候,就可以使用哈希表记录key的value,可以实现时间复杂度是1,要分清楚哈希表的key和value的对应关系

    class Solution:
        def twoSum(self, nums: List[int], target: int) -> List[int]:
            # method 1 暴力枚举
            # for index1, i in enumerate(nums):
            #     for index2, j in enumerate(nums):
            #         if i+j == target and index1 != index2:
            #             return [index1, index2]
    
            #  method 2 暴力枚举
            # for i in range(len(nums)):
            #     for j in range(len(nums)):
            #         if i!=j and nums[i] + nums[j] == target:
            #             return [i, j]
            # method 3 使用哈希表,快速寻找是否存在目标元素
            hashtable = dict()
            for i, num in enumerate(nums):
                if target - num in hashtable:
                    return [hashtable[target - num ], i]
                else:
                    hashtable[num] = i
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    2. 验证回文串

    验证回文串

    将所有大写字符转换为小写字符、并移除所有非字母数字字符
    解题思路:双指针

    Python中处理字符串之isalpha()方法的使用:用于判断字符串是否全部由字母组成。string.isalpha(),string是要检查的字符串。该方法返回True或False,表示字符串是否全部由字母组成

    Python中处理字符串之isalnum()方法的使用:其作用是检查一个字符串是否由字母或数字组成。只要字符串中包含了非字母非数字的字符,该函数就返回False,空字符串也会返回False.也就是说,字符串中只在由字母、一种语言的字符、数字或字母及数字组成的情况下才返回True.

    1. isalpha() 只能判断字符串是否只包含字母字符(包括字母和其他语言的字符),而不包括数字或其他特殊字符。数字+字母是false
    2. isalnum() 则可以判断字符串是否同时包含字母和数字字符,只有当字符串中包含字母和数字字符时才会返回 True,否则返回 False。含有特殊字符才是False

    区别参考链接

    1. upper() 方法将字符串转换为大写字母
    2. lower() 方法将字符串转换为小写字母

    双指针解法:

    class Solution:
        def isPalindrome(self, s: str) -> bool:
            sgood = "".join([i.lower() for i in s if i.isalnum()])
            n = len(sgood)
            left, right = 0 , n-1
            while left < right:
                if sgood[left] != sgood[right]:
                    return False
                else:
                    left += 1
                    right -=1
            return True
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    优雅解法:

    class Solution:
        def isPalindrome(self, s: str) -> bool:
            sgood = "".join(ch.lower() for ch in s if ch.isalnum())
            return sgood == sgood[::-1]
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    Golang学习:基础知识篇(三)—— Map(集合)
    Vb6 TCP Server服务端监听多个RFID读卡器客户端上传的刷卡数据
    python+django高校运动会报名管理系统Vue665
    数字孪生推动智慧城市建设「可视化平台解决方案」
    Python创建条形图加点重叠
    TypeError: can‘t pickle _thread.lock objects
    开发的装机环境--java技术的概念大全
    大模型微调技术LoRA与QLoRA
    Servlet全生命周期
    [Nacos] Nacos Server处理心跳请求 (八)
  • 原文地址:https://blog.csdn.net/rui_rui96/article/details/136416853