python-重排列字母形成回文(PythonTip)

[题目描述]

编写一个程序来检查是否可以重新排列给定的单词字母来形成回文单词。 回文是一个从前往后和从后往前读都一样的字符串,例如pop,racecar等。定义函数can_form_palindrome()的函数,参数为word(即输入的单词)。在函数内,如果输入字符串可以重新排列以形成回文,则返回True,否则返回False。
示例输入:
sarars
示例输出:
True
解释: 可以重新排列sarars字母形成回文单词rassar。


完整代码展示:
a=list(input())
if len(a)%2==0:
     b=0
     for i in range(0,len(a)):
           if a.count(a[i])%2==0:
                b+=1
     if b==len(a):
           print("True")
    else:
           print("False")
else:
    c=0
    d=0
    for i in range(0,len(a)):
          if a.count(a[i])%2==0:
               c+=1
         else:
               d+=1
    if d%2==1 and d+c==len(a):
          print("True")
    else:
          print("False")


代码解释:
a=list(input()) ”,让用户输入字符串,并将其分割成字符后储存进·列表a中。
if len(a)%2==0:
      b=0
      for i in range(0,len(a)):
            if a.count(a[i])%2==0:
                 b+=1
      if b==len(a):
            print("True")
     else:
            print("False")
              ”,如果列表a中的字符数量为偶数,则从左至右依次遍历列表a中所右元素,令b=0,每查找到一个在列表a中具有偶数个相同元素的元素,就令b+1。遍历结束后,判断b是否与a的长度相等。如果是,则打印“True”;否则打印“False”。(核心:回文的偶数长度字符串所有部分均轴对称,即所有元素均为偶数
else:
        c=0
        d=0
        for i in range(0,len(a)):
              if a.count(a[i])%2==0:
                   c+=1
            else:
                   d+=1
      if d%2==1 and d+c==len(a):
            print("True")
     else:
           print("False")                   
 ”,如果列表a中的元素数量为奇,则令c=0,d=0,接着从左至右遍历列表a中所有元素,每查找到一个在列表a中具有偶数个相同元素的元素,就令c+1;否则令d+1。遍历结束后,判断d是否为1,d+c是否等于a的长度。如果是,则打印“True”;否则“False”。(核心:1,奇数+偶数=奇数 2,回文的奇数长度字符串奇数个的字符且只能在字符串中心,其余部分轴对称


运行效果展示:

95ca15416fad4961a17f2c98b71df3b4.jpg

b1c277055e5c402390632ecc39d20ace.jpg 

            (声明:以上内容均为原创) 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

闪云-微星

感谢大家的支持与鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值