【问题标题】:How to make a string "palindrome" from the given string by removing certain characters?如何通过删除某些字符从给定字符串中生成字符串“回文”?
【发布时间】:2014-11-20 23:43:37
【问题描述】:

for 循环中的循环内容是什么?

a=raw_input("Enter a string :")
print a
length = len(a)
p = a[::-1]
print p
if a == p:
   print "palindrome"
else:
   print "Not palindrome"
for i in range(len(a)):

【问题讨论】:

  • 你的问题没什么意义,你是在检查回文还是试图操纵字符串变成回文?
  • 我试图操纵字符串成为回文。例如字符串“aaab”不是回文。所以,我需要删除 b 才能成为“aaa”回文。那么它背后的逻辑是什么?

标签: python


【解决方案1】:

检查字符串的长度是奇数还是偶数。如果奇怪,请尝试保留中间字符。

if len(s)%2:
    return s[:len(s)//2] + s[len(s)//2] + s[:len(s)//2][::-1]
else:
    return s[:len(s)//2] + s[:len(s)//2][::-1]

【讨论】:

    【解决方案2】:

    这会检查字符串 s 是否是回文

    s='hiih'
    s[0:int(len(s)/2)] == s[int(len(s)/2):len(s)][::-1]
    

    【讨论】:

    • 它可能无法回答这个模糊的问题。然而,我说的是真的。为什么要投反对票?
    • 可能是因为它没有回答问题,并且远不是一个优雅的解决方案,甚至是越野车? s==s[::-1] 成功了,而且更加优雅。
    • 嗯,恐怕你是对的,我想我赢得了这个:-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-30
    • 1970-01-01
    • 2018-11-03
    相关资源
    最近更新 更多