CF1430E String Reversal
题目描述
给定一个字符串 $s$。你需要将其反转——即原本的第一个字母变为反转后的最后一个字母,原本的第二个字母变为反转后的倒数第二个字母,依此类推。例如,如果你的目标是反转字符串 "abddea",你应该得到字符串 "aeddba"。为实现目标,你可以交换字符串中相邻的元素。
你的任务是计算将给定字符串反转所需的最少相邻元素交换次数。
输入格式
第一行包含一个整数 $n$($2 \le n \le 200\,000$),表示字符串 $s$ 的长度。
第二行包含字符串 $s$,由 $n$ 个小写拉丁字母组成。
输出格式
输出一个整数,表示将字符串反转所需的最少相邻元素交换次数。
说明/提示
在第一个样例中,你需要先交换第三个和第四个元素,使字符串变为 "aazaa"。然后再交换第二个和第三个元素,使字符串变为 "azaaa"。因此,可以通过两次交换将字符串反转。
由于第二个样例中的字符串本身就是回文串,所以无需进行任何操作即可完成反转。
由 ChatGPT 4.1 翻译