当前位置: 首页 > 编程日记 > 正文

leetcode--最长回文子串--python

文章目录

  • 题目
    • 题目详情
    • 示例
  • 解题思路
    • 思路
    • 代码
    • 运行结果
    • 最佳方案

题目

题目详情

给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。

示例

输入: "babad"
输出: "bab"
注意: "aba" 也是一个有效答案。
输入: "cbbd"
输出: "bb"

解题思路

思路

首先说一下我的伪代码吧

1. 遍历字符串
2. 比较遍历的两个值是否相等(while循环来实现)2.1 介于回文串分为aba,adda类,分两种情况2.1.1 i和i2.1.2 i和i+12.2 如果相等的话就分别向右与向左看,再比较是否相等2.3 while循环结束后返回子串的长度
3. 最后是判断返回的子串长度是否是最长的

举个例子,比如说字符串“asdsf”

如果子串d的左边等于s,右边也等于s,那么sds是否是子串呢,那就是了啊

这个算法是把每一个字符都当作中心来看待。

代码

class Solution:def longestPalindrome(self,s):if s is None and len(s) < 1:return 0start = end = 0for i in range(len(s)-1):                 #遍历len1 = self.expandAroundCenter(s,i,i)     #中心为单数len2 = self.expandAroundCenter(s,i,i+1)    #中心为偶数length = max(len1,len2)if length > end-start:                  #判断是否是最长的一个回文子串start = i-(length-1)//2end = i+length//2return s[start:end+1]                      #最后返回回文子串def expandAroundCenter(self,s,L,R):while 0<=L<=R<len(s) and s[L] == s[R]:       #判断子串左右两边是否也相等L -= 1R += 1return R-L-1                               #返回子串长度

运行结果

在这里插入图片描述

最佳方案

这道题我前后做过两回,第一次做的时候,讨论区说用马拉车方法做,但是对于我来说看着真的很伤脑壳啊,我看的太阳穴痛。今天来做的时候这种方法很简单,很易理解,但是终究不是最好的。
我们来看看大神的方案吧,52ms

class Solution:def longestPalindrome(self, s: 'str') -> 'str':length = len(s)if length < 2 or s == s[::-1]: return smax_len, begin = 1, 0for i in range(1, length):odd = s[i - max_len - 1:i + 1]even = s[i - max_len:i + 1]if i - max_len >= 1 and odd == odd[::-1]:begin = i - max_len - 1max_len += 2continueif i - max_len >= 0 and even == even[::-1]:begin = i - max_lenmax_len += 1return s[begin:begin + max_len]

相关文章:

java调用接口

public class DemoTest { public static final String GET_URL "http://112.4.27.9/mall-back/if_user/store_list?storeId32"; //get请求// public static final String POST_URL "http://112.4.27.9/mall-back/if_user/store_list"; public sta…

LSGO:团队学习模式“社群化”讨论!

大家关注LSGO软件技术团队也有一段时间了&#xff0c;容我向大家汇报一下目前团队的工作模式。我们通常是这样的&#xff0c;新来团队的同学我们会按照兴趣进行分组&#xff0c;然后在学长或者我的牵头下带着大家“刷”书&#xff0c;以便新来的同学具备最小核心知识。通常&…

Captaris Workflow 6.0 EventService 执行效率低下的排除。

如果您的Captaris Workflow Event Task执行的间隔时间超过30分钟&#xff0c;客户可能向您抱怨流程效率太低了&#xff0c;这时候你可以准备一个只包含Event Task的模型&#xff08;我已经做了一个&#xff0c;点击此处下载&#xff09;&#xff0c;把它部署到服务器并新建一个…

leetcode--最长公共前缀--python

文章目录题目题目详情示例解题思路代码运行结果最佳方案题目 题目详情 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀&#xff0c;返回空字符串 “”。 示例 输入: ["flower","flow","flight"] 输出: "fl"…

个人知识管理的29个原则--摘录

1、持续的学习成为个人生存和发展的基础。持续学习不一定能带来成功&#xff0c;但不学习一定失败&#xff1b; 2、信息和知识爆炸&#xff0c;在一段时间和时期内&#xff0c;学习的内容必须聚焦。起码要在一个领域内成为专家。 3、你应该学习的内容取决于你的价值观、特长、…

硬铺路、软筑墙:三星移动在中国的新路径

虽然已经来过中国60多次&#xff0c;但是高东真的普通话并不十分“地道”。但是当这个三星移动掌舵者一字一字吐出“三星绝不放弃中国市场”的话语时&#xff0c;与会的媒体几乎都在他脸上读到了一种坚毅——在5月于古北水镇召开的Galaxy S8|S8发布会上&#xff0c;他向数百家媒…

对矩阵分解的粗浅理解之LU分解

** 欢迎大家到Matlab与线性代数专栏中查看相关图文。 ** 本图文从行列式计算出发引出了对矩阵LU分解的粗浅理解&#xff0c;希望对正在学习线性代数的同学有所帮助。

leetcode--删除链表的倒数第N个节点--python

文章目录题目题目详情示例说明解题思路思路代码运行结果最佳方案题目 题目详情 给定一个链表&#xff0c;删除链表的倒数第 n 个节点&#xff0c;并且返回链表的头结点。 示例 给定一个链表: 1->2->3->4->5, 和 n 2.当删除了倒数第二个节点后&#xff0c;链表…

VmWare 与 宿主主机通信 STEP BY STEP (适用于刚開始学习的人)

基本原理 在虚拟机中有三种通信方式&#xff0c;例如以下图所看到的 1. Bridged(桥接模式) 在桥接模式下&#xff0c;VMware虚拟出来的操作系统就像是局域网中的一独立的主机&#xff0c;它能够訪问网内不论什么一台机器只是你须要多于一个的IP地址&#xff0c;并且须要手工为 …

古墓丽影8通关了

大概完了两三周吧&#xff0c;每天玩两个多小时&#xff0c;终于把它通关了。这里谈一下我的感受。 画面、声音非常棒&#xff0c;游戏场景也十分宏大&#xff0c;人物造型也更适合东方的审美观&#xff0c;比古墓7强了不少。人物的花样更多了&#xff0c;操作也非常流畅&#…

如何利用遗传算法进行自变量降维

如何利用遗传算法进行自变量降维 GAOT工具箱下载地址&#xff1a;http://download.csdn.net/download/lsgo_myp/9721624 乳腺癌数据集下载地址&#xff1a;http://download.csdn.net/download/lsgo_myp/9721664

leetcode--括号生成--python

文章目录题目题目详情示例解题思路思路代码运行结果最佳方案题目 题目详情 给出 n 代表生成括号的对数&#xff0c;请你写出一个函数&#xff0c;使其能够生成所有可能的并且有效的括号组合。 示例 例如&#xff0c;给出 n 3&#xff0c;生成结果为&#xff1a;["(((…

smarty的简单分页

以下是模板中的smarty代码,用smarty简单的代入相关的变量就行了&#xff0c;非常简单&#xff0c;但是在php代码中还要传入page这个参数。我觉得这样分挺好&#xff0c;非常简单。我越来越喜欢用smarty了 {if $pageCount > 1} {foreach itemi from$pagerList} {if $pageN…

如何利用遗传算法进行自变量降维(代码部分)

如何利用遗传算法进行自变量降维&#xff08;代码部分&#xff09; main.m 主函数 输入自变量优化适应度子函数 fitness.m 输入自变量优化编码解码子函数 de_code.m BP网络权值和阈值优化适应度子函数 gabpEval.m BP网络权值和阈值优化编码解码子函数 gadecod.m 输出结果

unity3d教程运行物理机制

首先&#xff0c;我们将把Hooke定律写Euler方法结合在一起找到新坐标、加速和速度。Hooke定律是Fkx&#xff0c;这里的F是指由水流产生的力&#xff08;记住&#xff0c;我们将把水体表面模拟为水流&#xff09;&#xff0c;k是指水流的常量。x则是位移。我们的位移将成为每一个…

leetcode--电话号码和字母组合--python

文章目录题目题目详情示例解题思路思路代码运行结果最佳方案题目 题目详情 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 示例 输入&#xff1a…

轻松记账工程冲刺第二阶段10

昨天干了什么&#xff1a; 对页面进行优化测试&#xff0c;对软件进行测试&#xff0c;找出bug&#xff0c;并调试bug 今天准备干什么&#xff1a; 测试完成后&#xff0c;进行应用的发布。注册应用商店账户&#xff0c;然后对apk进行加固签名&#xff0c;并进行发布等待审核。…

Matlab与线性代数 -- 矩阵的范数

本图文介绍了矩阵的范数以及在Matlab中的具体操作。

leetcode--罗马数字转整数--python

文章目录题目题目详情示例解题思路思路代码运行结果最佳方案题目 题目详情 罗马数字包含以下七种字符: I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。 字符 数值 I 1 V 5 X 10 L …

如何利用azMan (Authorization Manager) 实现 role-based的安全验证机制

在WCF中如何配置基于asp.net role的授权机制&#xff0c;看了些时日&#xff0c;总算有点眉目了 。 以下是一个典型的通过自定义的role-based (principalPermissionModeUseAspNetRoles)来进行授权的WCF service config file. Code<?xml version"1.0" encoding&q…

spring-cloud-ribbon负载均衡

Ribbon Ribbon是一个基于HTTP和TCP客户端的负载均衡器。Feign中也使用Ribbon&#xff0c;后续会介绍Feign的使用。 Ribbon可以在通过客户端中配置的ribbonServerList服务端列表去轮询访问以达到均衡负载的作用。 当Ribbon与Eureka联合使用时&#xff0c;ribbonServerList会被Di…

LSGO代码小组第17周复盘日志

本图文是15级数理系黄佳新同学代表代码小组进行的学习汇报内容。

leetcode--最小路径和--python

文章目录题目题目详情示例解题思路思路动态规划小知识代码运行结果最佳方案题目 题目详情 给定一个包含非负整数的 m x n 网格&#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。 说明&#xff1a;每次只能向下或者向右移动一步。 示例…

Python 编写用户登录接口

附有流程图可以看一看&#xff0c;第一次画会慢慢改进的。代码如下&#xff1a;1.User 用户名存储文件王二 123 张三 1234 李四 1234562.Lock_User 被锁用户文件3. Land.py 主程序文件#codingutf-8import sysi0while i<3:print("----Welcome------&quo…

再发布一个windows live writer 插件 图标信息框 wlw plugin icon info frame

原地址&#xff1a; http://www.zu14.cn/2008/12/14/wlw_plugin_icontip/ 自上次发布 windows live writer 插件 coolemotion 之后&#xff0c;已经有一段时间了&#xff0c;今天再发布一款 其实&#xff0c;这个插件已经发布很久了&#xff0c; 只是我懒得去 windows live gal…

什么是抽样分布?

本图文详细介绍了抽样分布的概念并利用Matlab进行了仿真。有团队孔令才博士提供。

leetcode--下一个更大元素II--python

文章目录题目题目详情示例解题思路思路代码运行结果最佳方案题目 题目详情 给定一个循环数组&#xff08;最后一个元素的下一个元素是数组的第一个元素&#xff09;&#xff0c;输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序&#xff0c;这个数字…

我也说说Emacs吧(6) - Lisp速成

前面我们学习了基本操作&#xff0c;也走马观花地看了不少emacs lisp的代码。这一章我们做一个lisp的速成讲座。 Lisp的含义是表处理语言。它的代码组成结构都是用括号组成的表来表示的。Lisp中的功能&#xff0c;要么是以函数形式求值&#xff0c;要么本身就是一些特殊表。比如…

Matlab与数据结构 -- 如何获取给定目录中的文件

本图文详细介绍了Matlab中如何获取给定目录中文件的操作。

我的资源 分享区

把最近所做过一些程序都发上来。希望有用。已经上传了我的资源里面去了 第一期&#xff1a; 2007年制作的手机抽奖程序&#xff08;没完善版本&#xff09;&#xff1a; As 2.0 版本手机抽奖程序&#xff1a;http://dl4.csdn.net/fd.php?i60728776657431&s52b0082a4017dde…