错误9%、实在是不知道为什么。

解题思路:
    博客https://blog.csdn.net/bianxia123456/article/details/104388390?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160138683319195240403079%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=160138683319195240403079&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v3~pc_rank_v2-1-104388390.first_rank_ecpm_v3_pc_rank_v2&utm_term=%5D%E5%AE%8C%E7%BE%8E%E7%9A%84%E4%BB%A3%E4%BB%B7python&spm=1018.2118.3001.4187

参考代码:

n = int(input())
s = list(input())
s1 = s[::-1]
total = 0
"""判断是否可以做回文串"""
def check(S):
    count = 0
    if len(S)%2 ==0:
        for s in S:
            if S.count(s) != 2:
                return False
    else:
        for s in S:
            if S.count(s) != 2:
                count += 1
                if count >= 2:
                    return False
    return True

def swap(s,s1,n):
    global total
    if check("".join(s)):
       for i in range(n//2):
           a = s[i]
           if s.count(a) != 1:
                total += s1.index(a)
                s1.pop(s1.index(a))
                s = s1[::-1]
           else:
                total += n//2 - i
                s1.pop(a)
                s = s1[::-1]
swap(s,s1,n)
if total != 0:
    print(total)
else:
    print("Impossible")


点赞(0)
 

0.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 1 条评论

123 3年前 回复TA
line 14判断是否为回文就有问题