(每日一练28811)题目名称:小艺的英文名

文盲老顾 文盲老顾 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

小艺酱想给自己起一个英文名字。 小艺酱想要装的自己学识渊博。 所以她想要自己英文名字必须满足: 1.只有字母表中前k个小写字母。 2.必须是回文串。 3.前k个小写字母每个字母至少出现一次。 小艺酱已经自己完成了部分空余的字母部分用’?’代替。 请你帮她完成她的英文名字。

嗯,除非两个对应的位置都是?号,其他位置的?替换成对应的内容,两个都是?号的,则按缺失字符递补。

k = int(input())
name = input()
n = len(name)
cs = 'abcdefghijklmnopqrstuvwxyz'
ans = ''
less = sorted(set(cs[:k]) - set(name))
l = (n - 1) // 2
r = l if n % 2 == 1 else l + 1
t = list(name)
for i in range(l + 1):
    if t[l - i] != t[r + i] and '?' not in [t[l - i],t[r + i]]:
        ans = 'QAQ'
        break
    elif t[l - i] != t[r + i]:
        t[l - i] = t[r + i] = (t[l - i] if t[l - i] != '?' else t[r + i])
    elif '?' == t[l - i] == t[r + i]:
        t[l - i] = t[r + i] = (less.pop() if len(less) > 0 else 'a')
if ans == '':
    if len(less) > 0:
        ans = 'QAQ'
    else:
        ans = ''.join(t)
print(ans)
...全文

相关推荐

评论
收藏 已收藏
分享
返回顶部
文盲老顾
文盲老顾 新星创作者: 信息安全技术领域 新星创作者: 信息安全技术领域领域专家: 数据库技术领域 领域专家: 数据库技术领域
老顾的一亩三分地 320 成员 160 内容