Longest Palindromic Substring

回文这种简单的问题,在C里面印象很深啊。希望能一次过。

写的时候才想到有两种情况:

454(奇数位)
4554(偶数位)
第1次提交
class Solution:
def longestPalindrome(self, s):
"""
:type s: str
:rtype: str
"""
print(s)
maxPadStr=''
# traverse each char
l=len(s)
for i,c in enumerate(s): # left or right extend test
# j is length
j=1
while j <= l/2: # left or right str
leftStr=s[i:i-j:-1] if (i-j)>=0 else s[i::-1]
rightStr=s[i:i+j] # odd
rightStr2=s[i+1:i+j+1] # even
# length
leftLen=len(leftStr)
rightLen=len(rightStr) print(i,j,'left:',leftStr,'right:',rightStr,'right-even:',rightStr2) if leftLen != rightLen:
break if leftStr == rightStr and len(leftStr)*2-1>=len(maxPadStr):
#odd bit
maxPadStr=(leftStr[:0:-1]+rightStr) # 654,654 -> 45654
#print('odd',maxPadStr) # 'cbbd' 时,left: b right: b right-even: b. odd even 都存在,但上面只会b,所以存在偶数位相等故不能elif
if leftStr == rightStr2 and len(leftStr)*2>=len(maxPadStr):
#even bit
maxPadStr=(leftStr[::-1]+rightStr2) # 654,654 -> 456654
#print('even',maxPadStr)
j+=1 return maxPadStr
if __name__ == "__main__": data = [
{
"input":"babad",
"output":"bab", # /'aba'
},{
"input":"cbbd",
"output":"bb"
},{
"input":"123456654",
"output":"456654"
},{
"input":"14565422",
"output":"45654"
} ];
for d in data:
result=Solution().longestPalindrome(d['input'])
print(result)
if result==d['output']:
print("--- ok ---")
else:
print("--- error ---")

Wrong Answer:

Input:
"a"
Output:
""
Expected:
"a"

咦,这种一个字母早都考虑到了啊。

出在了while的条件上:j <= l/2: 哈哈,一半长度的直观出发哈哈哈l/2,没错,只是把1个字符就排除掉了,改成这样j<=l//2+1

第2次提交
pass
while j <= l//2+1:
pass

Accepted!

LeetCode 5. Longest Palindromic Substring & 回文字符串的更多相关文章

  1. Leetcode 5. Longest Palindromic Substring(最长回文子串, Manacher算法)

    Leetcode 5. Longest Palindromic Substring(最长回文子串, Manacher算法) Given a string s, find the longest pal ...

  2. LeetCode(4) || Longest Palindromic Substring 与 Manacher 线性算法

    LeetCode(4) || Longest Palindromic Substring 与 Manacher 线性算法 题记 本文是LeetCode题库的第五题,没想到做这些题的速度会这么慢,工作之 ...

  3. [LeetCode] 125. Valid Palindrome 验证回文字符串

    Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignori ...

  4. leetcode:Longest Palindromic Substring(求最大的回文字符串)

    Question:Given a string S, find the longest palindromic substring in S. You may assume that the maxi ...

  5. 求最长回文子串 - leetcode 5. Longest Palindromic Substring

    写在前面:忍不住吐槽几句今天上海的天气,次奥,鞋子里都能养鱼了...裤子也全湿了,衣服也全湿了,关键是这天气还打空调,只能瑟瑟发抖祈祷不要感冒了.... 前后切了一百零几道leetcode的题(sol ...

  6. [LeetCode] 5. Longest Palindromic Substring 最长回文子串

    Given a string s, find the longest palindromic substring in s. You may assume that the maximum lengt ...

  7. 最长回文子串-LeetCode 5 Longest Palindromic Substring

    题目描述 Given a string S, find the longest palindromic substring in S. You may assume that the maximum ...

  8. leetcode 5 :Longest Palindromic Substring 找出最长回文子串

    题目: Given a string S, find the longest palindromic substring in S. You may assume that the maximum l ...

  9. [leetcode]5. Longest Palindromic Substring最长回文子串

    Given a string s, find the longest palindromic substring in s. You may assume that the maximum lengt ...

随机推荐

  1. Qt 中的事件处理(一)

    1.图形界面应用程序的消息处理模型 特点: 基于操作系统才能运行 GUI应用程序提供的功能必须由用户触发 用户操作界面时操作系统是第一个感知的 系统内核的消息通过事件处理转变成QT的信号 2. Qt中 ...

  2. Feign 请求拦截器和日志

    Feign 支持请求拦截器,在发送请求前,可以对发送的模板进行操作,例如设置请求头等属性,自定请求拦截器需要实现 feign.RequestInterceptor 接口,该接口的方法 apply 有参 ...

  3. 前端学PHP之面向对象系列第四篇-----关键字

    public public表示公有,它具有最大的访问权限,被定义为公有的类成员可以在任何地方被访问 如果属性用 var 定义,则被视为公有,如果方法没有设置关键字,则该方法默认为公有 <?php ...

  4. 开IE时 暴卡

    待打开IE后,在“工具”-“管理加载项”中禁用所有加载项.

  5. Flask-状态保持-CSRF

    问题:cookies基于浏览器的同源策略,不同域名的cookie不能相互访问,为什么可以进行跨站请求伪造呢? 原因:cookie基于浏览器的同源策略,确实是在实现状态保持的时候,不能跨域访问. 跨站请 ...

  6. Linux Docker安装Jenkins

    安装环境 操作系统 centos7.3 安装Docker,安装及配置见 <Docker之Docker介绍及安装配置> 安装Jenkins 下载Jenkins 命令:sudo docker ...

  7. 禁止光盘优盘自动播放(Shell Hardware Detection服务)

    strComputer = "."Set objWMIService = GetObject("winmgmts:\\" & strComputer & ...

  8. S型顺序遍历二叉树(c++实现)

    //1.s型顺序访问二叉树,默认先左后右:利用两个栈来实现:如果先右后左的话,改变一下入栈的顺序就行 //2.注意s1 s2插入栈的顺序是不同的 void S_LevelOrderPrint(Tree ...

  9. ssh调试及指定私钥

    1.ssh调试 ssh -vT username@ip[or hostname] T表示测试,v显示详细信息 也可以配置config文件(在~/.ssh/config)指定用户名和密码 如 [gerr ...

  10. Qt QDateTime QTimer的简单实用

    转载:N3verL4nd qttimer.h #ifndef QTTIMER_H #define QTTIMER_H #include <QDialog> namespace Ui { c ...