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

Python | Leetcode Python题解之第336题回文对

题目:

题解:

class Solution:def palindromePairs1(self, words: List[str]) -> List[List[int]]:# 核心思想--枚举前缀和后缀# 如果两个字符串k1,k2组成一个回文字符串会出现三种情况# len(k1) == len(k2),则需要比较k1 == k2[::-1]# len(k1) < len(k2),例如,k1=a, k2=abb,可组成abba#   因为k2后缀bb已经是回文字符串了,则需要找k1与k2剩下相等的部分# len(k1) > len(k2),例如,k1=bba, k2=a,组成abba#   因为k1前缀bb已经是回文字符串了,则需要找k1剩下与k2相等的部分res = []worddict = {word: i for i, word in enumerate(words)}  # 构建一个字典,key为word,valie为索引for i, word in enumerate(words):# i为word索引,word为字符串for j in range(len(word)+1): # 这里+1是因为,列表切片是前闭后开区间tmp1 = word[:j]  # 字符串的前缀tmp2 = word[j:]  # 字符串的后缀if tmp1[::-1] in worddict and worddict[tmp1[::-1]] != i and tmp2 == tmp2[::-1]:# 当word的前缀在字典中,且不是word自身,且word剩下部分是回文(空也是回文)# 则说明存在能与word组成回文的字符串res.append([i, worddict[tmp1[::-1]]])  # 返回此时的word下标和找到的字符串下标if j > 0 and tmp2[::-1] in worddict and worddict[tmp2[::-1]] != i and tmp1 == tmp1[::-1]:         # 当word的后缀在字典中,且不是word自身,且word剩下部分是回文(空也是回文)# 则说明存在能与word组成回文的字符串# 注意:因为是后缀,所以至少要从word的第二位算起,所以j>0res.append([worddict[tmp2[::-1]], i])  # 返回此时的word下标和找到的字符串下标return res
http://www.lryc.cn/news/425709.html

相关文章:

  • C语言家教记录(六)
  • C++竞赛初阶L1-11-第五单元-for循环(25~26课)519: T454430 人口增长问题
  • demo测试
  • TinTinLand Web3 + DePIN 共学月|深入探索 DePIN 项目,全景分析去中心化网络未来
  • Java并发编程(六)
  • k8s对外服务之Ingress
  • 使用Python+moviepy在视频画面上绘制边框
  • 灵办AI探索之旅:颠覆传统的代码开发工具
  • 【Redis】Redis 数据类型与结构—(二)
  • Tomcat初篇
  • 机器学习(2)-- KNN算法之手写数字识别
  • 【机器人】关于钉钉机器人如何进行自定义开发问答【详细清晰】
  • Qt:exit,quit,close的用法及区别
  • Linux——进程地址空间
  • 信创(国产化)方案
  • EasyRecovery17中文版永久汉化版电脑数据恢复工具下载
  • Cesium倾斜相机视角观察物体
  • C/C++开发---全篇
  • Android全面解析之context机制(二): 从源码角度分析context创建流程(上)
  • WPS真题题库导入刷题小程序:百思考个人使用经验分享
  • 拯救者双系统问题 Verifiying shim SBAT data failed: Security Policy Violation
  • ThreeJs学习笔记--坐标系,光源,相机控件
  • 基于 Android studio 实现停车场管理系统--原创
  • 8 个最佳 Java IDE 和文本编辑器
  • 【2024最新版版】PyCharm安装教程
  • 奥运科技观察:AI PC,如何成为当代体育精神的数字捍卫者?
  • Java进阶篇之包的概念及其应用
  • 短剧出海,赚钱新途径,掌握海外短剧CPS分销的秘诀
  • uniapp小程序openid和unionId
  • 前端工程化-04.Vue项目简介