[蓝桥杯][基础练习VIP]完美的代价(贪心)
生活随笔
收集整理的這篇文章主要介紹了
[蓝桥杯][基础练习VIP]完美的代价(贪心)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
回文串,是一種特殊的字符串,它從左往右讀和從右往左讀是一樣的。小龍龍認為回文串才是完美的。現在給你一個串,它不一定是回文的,請你計算最少的交換次數使得該串變成一個完美的回文串。
交換的定義是:交換兩個相鄰的字符
例如mamad
第一次交換 ad : mamda
第二次交換 md : madma
第三次交換 ma : madam (回文!完美!)
輸入
第一行是一個整數N,表示接下來的字符串的長度(N < = 8000)
第二行是一個字符串,長度為N.只包含小寫字母
輸出
如果可能,輸出最少的交換次數。
否則輸出Impossible
樣例輸入
5
mamad
樣例輸出
3
思路:如果發現了單獨的字母,也就是沒有與它匹配的。
如果n是偶數的話,就肯定不對;
如果n是奇數的話,并且之前出現過這樣的,也肯定不對;
并且遇見了這樣的情況,不要交換這個字母到它應該有的位置,因為交換之后,有可能別的再交換需要花費更多的代價,例如baamm.
其他的情況就按照首尾對應的方式交換就可以了,這種情況需要交換。
代碼如下:
努力加油a啊,(o)/~
總結
以上是生活随笔為你收集整理的[蓝桥杯][基础练习VIP]完美的代价(贪心)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 5g对vr的影响(Everything)
- 下一篇: Win10文件夹正在使用无法删除怎么办