ACM中一些很妙的题

给定长度为N的字符串S,要构造一个长度为N的字符串T。T初始是空字符串。S由大写字母构成。
构造过程通过反复进行以下任意操作:
从S的头部删除一个字符,添加到T的尾部
从S的尾部删除一个字符,添加到T的尾部
请你构造出字典序尽可能小的字符串T(字典序是指首先比较第一个字符,如果不同则第一个字符
较小的字符串更小,如果相同则比较第二个字符,以此类推)
 
#include <iostream>
using namespace std;
 
int main(){
    int N;
    string S, T;//构造两个字符串
     
    cin>>N>>S;
     
    int L=0, R=N-1;
    while(L<=R)
    {
      int i=0;
      while(S[L+i]==S[R-i]) i++;
        T+=S[L+i]<S[R-i]?S[L++]:S[R--];
    }
    cout<<T;
}
posted @   may0113  阅读(120)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示