发布于2020-02-24 23:32 阅读(522) 评论(0) 点赞(28) 收藏(3)
给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。
输入: “aba”
输出: True
输入: “abca”
输出: True
说明: 你可以删除c字符。
i = 0
j = len(s)-1
while i < j:
if s[i]!=s[j]:
#左侧后移一位
a = s[i+1:j+1]
#右测前移一位
b = s[i:j]
if a == a[::-1] or b == b[::-1]:
return True
else:
return False
i += 1
j -= 1
else:
return True
采用双指针,头指针设为i,尾指针设为j。
如果遇到前后不等,取a为舍弃左侧一元素的子序列,取b为舍弃右侧一元素的子序列,若a或b为回文,则返回True;反之,返回False。如果正常退出循环,说明是正常回文串,也返回True。
在python中可以用a == a[::-1]轻松的判断序列是否为回文!
TODO
作者:加班是一种习惯
链接:https://www.pythonheidong.com/blog/article/232769/fa00ef6c96e43a187ac2/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!