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

python做题日记(12)

第二十七题

        LeetCode第27题要求原地移除数组中所有等于给定值val的元素,并返回移除后数组的新长度。不能使用额外的数组空间,必须在原数组上修改,且元素的顺序可以改变。对于这道题的解法在之前的题目中也使用过,可以使用双指针法(快慢指针),快指针遍历数组,慢指针标记新数组的下一个位置。当快指针指向的元素不等于val时,将该元素复制到慢指针的位置,并移动慢指针。

class Solution:def removeElement(self, nums: list[int], val: int) -> int:slow = 0for fast in range(len(nums)):if nums[fast] != val:nums[slow] = nums[fast]slow += 1return slow

第二十八题

        LeetCode第28题要求实现一个函数,在haystack字符串中找出needle字符串第一次出现的位置。如果needle为空字符串,返回0;如果不存在,返回-1。这与字符串内置的find()方法功能类似。首先处理特殊情况即当needle为空字符串时,题目要求返回0。这与Python的字符串处理逻辑一致,例如"abc".find("")也会返回0。通过遍历haystack的每个可能位置,截取与needle长度相同的子串进行比较。窗口滑动范围是0len(haystack)-len(needle),确保不会越界。这题如果直接采用字符串的find处理方法也是可以查找到字串在字符串中首次出现的位置。

class Solution:def strStr(self, haystack: str, needle: str) -> int:# 特殊情况:needle为空字符串,返回0if not needle:return 0# 遍历 haystack,查找 needlefor i in range(len(haystack) - len(needle) + 1):if haystack[i:i+len(needle)] == needle:return ireturn -1

http://www.xdnf.cn/news/11990.html

相关文章:

  • 打卡Day44
  • Python 解释器安装全攻略(适用于 Linux / Windows / macOS)
  • 【PmHub面试篇】PmHub 整合 TransmittableThreadLocal(TTL)缓存用户数据面试专题解析
  • MySQL 5.6 Root密码修改完整流程
  • video-audio-extractor:视频转换为音频
  • Spring Boot应用开发实战
  • el-amap-bezier-curve运用及线弧度设置
  • 圣杯布局和双飞翼布局
  • Linux容器篇、第一章docker命令总结表
  • 【仿生】硬件缺失,与组装调试,皮肤问题
  • 第七十三篇 从电影院售票到停车场计数:生活场景解析Java原子类精髓
  • 如何搭建Z-Blog PHP版本:详细指南
  • pytorch 与 张量的处理
  • Neo4j 监控全解析:原理、技术、技巧与最佳实践
  • Neo4j 认证与授权:原理、技术与最佳实践深度解析
  • Elasticsearch中的语义搜索(Semantic Search)介绍
  • Axure 下拉框联动
  • Hive终极性能优化指南:从原理到实战
  • MySql安装、卸载(保姆级流程)
  • MCP客户端Client开发流程
  • python第42天打卡
  • html2canvas v1.0.0-alpha.12版本文本重叠问题修复
  • 基于LangChain构建高效RAG问答系统:向量检索与LLM集成实战
  • 泛微E8多行文本(textarea)赋值
  • 法律AI的“幻觉”治理:大模型如何重塑司法公正与效率
  • 基于 ShardingSphere + Seata 的最终一致性事务完整示例实现
  • nlohmann/json简介及使用
  • kubespere使用中遇到的问题
  • Elasticsearch的审计日志(Audit Logging)介绍
  • 若依Ruoyi中优先从本地文件加载静态资源