当前位置: 首页 > news >正文

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

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-1while left < right:if sgood[left] != sgood[right]:return Falseelse:left += 1right -=1return True

优雅解法:

class Solution:def isPalindrome(self, s: str) -> bool:sgood = "".join(ch.lower() for ch in s if ch.isalnum())return sgood == sgood[::-1]
http://www.lryc.cn/news/310144.html

相关文章:

  • 服务器硬件基础知识全解析
  • python毕设选题 - 大数据商城人流数据分析与可视化 - python 大数据分析
  • vmware网络负载均衡方式
  • Docker基础教程 - 2 Docker安装
  • Android 多桌面图标启动, 爬坑点击打开不同页面
  • 2024-3-1-网络编程作业
  • pytorch基础2-数据集与归一化
  • Python测试框架pytest介绍用法
  • AI对话系统app开源
  • SpringBoot+aop实现主从数据库的读写分离
  • 胎神游戏集第二期
  • Unicode/ASCII/UTF的关系(模板字面量、模板字符串、占位符)
  • 三、低代码平台-单据配置(单表增删改查)
  • 6.1 数据驱动型业务管理方法(3%)
  • JVM学习目录
  • 使用远程桌面连接工具上传文件到Windows轻量应用服务器时,如何优化文件传输速度?
  • 【Linux】基本指令(下)
  • LeetCode受限条件下可到达节点的数目
  • [Flutter]设置应用包名、名称、版本号、最低支持版本、Icon、启动页以及环境判断、平台判断和打包
  • electron-release-server部署electron自动更新服务器记录
  • 贪心(基础算法)--- 区间选点
  • JAVA计算表达式
  • 【复现】宏景HCM 任意文件读取漏洞_63
  • Linux:kubernetes(k8s)搭建mater节点(kubeadm,kubectl,kubelet)(2)
  • Web应用安全威胁与防护措施
  • MySQL相关知识汇总
  • 【旧文搬运】为你的 Laravel 应用添加一个基于 Swoole 的 WebSocket 服务
  • vue项目从后端下载文件显示进度条或者loading
  • [技巧]Arcgis之图斑四至点批量计算
  • 【java】20:枚举