CodeForces 1935A Entertainment in MAC

题目链接:Entertainment in MAC



思路

       当当前操作次数n为偶数时,若原字符串大于反转字符串则可以将原字符串反转n - 2次,则得到的还是原字符串,此时反转一次,并将其再次反转的字符串加到反转字符串的末尾,此时得到词典最小的字符串,源字符串小于反转字符串时,直接将原字符串反转n次得到词典最小的字符串。
       当当前操作次数为奇数时,若原字符串大于反转字符串,则将字符串反转n次,得到原串的反转字符串,即为词典最小的字符串,若原字符串小于反转字符串,则反转n - 1次,再将
当前字符串反转加到当前字符串末尾得到词典最小的字符串。


代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N = 1e5 + 10;
void solve() {
ll n;
string s;
cin >> n >> s;
int l = 0, len = s.size();
while (s[l] == s[len - 1 - l] && l < len / 2) {
l++;
}
if (s[l] > s[len - l - 1]) {
if (n % 2) {
reverse(s.begin(), s.end());
}
else {
string auxious = s;
reverse(s.begin(), s.end());
s = s + auxious;
}
}
else if (s[l] < s[len - 1 - l]){
if (n % 2) {
string auxious = s;
reverse(s.begin(), s.end());
s = auxious + s;
}
}
cout << s << endl;
}
int main(){
int t;
cin >> t;
while (t--) {
solve();
}
return 0;
}
posted @   薛定谔的AC  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示