首页 > 试题广场 >

小红的回文串

[编程题]小红的回文串
  • 热度指数:357 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小红有一个长度为 n 只包含小写字母的字符串,她想把这个字符串通过以下操作变成回文串:
1. 选择字符串的第一个字母,将其插在字符串的末尾。例如,对于字符串 abc,得到 bca
2. 选择一个字符串的一个字符,将这个字符变成任意小写字母。
每次只能进行上述两种操作中的一种,小红想知道最少需要进行多少次操作才能将字符串变成回文串。

输入描述:
第一行一个正整数n,代表字符串的长度。
第二行一个长度为 n 的仅包含小写字母的字符串。
1\leq n \leq 10^3


输出描述:
一个整数,代表最小的操作次数,使得字符串变成回文串。
示例1

输入

5
aacde

输出

2

说明

先进行操作一,字符串变为 acdea。
再进行操作二,字符串变为 aedea。
头像 丨阿伟丨
发表于 2025-09-16 14:45:22
题目链接 小红的回文串 题目描述 给定一个长度为 的字符串,你有两种操作: 循环移位:将字符串的第一个字母移动到末尾。 修改:将字符串中的任意一个字符修改为任意其他小写字母。 目标是使用最少的操作次数,将原字符串变为一个回文串。 解题思路 这是一个典型的优化问题,我们需要在两种不同类型的操作( 展开全文
头像 牛客439924123号
发表于 2025-06-27 16:48:21
import sys def min_operations(n, s): min_ops = float('inf') # 尝试0到n-1次操作1(移动首字符到末尾) for k in range(n): # 生成移动k次后的字符串 展开全文