• 最小字典序


    给定一个长度为N的字符串S。

    每次可以从S的开头或者结尾取出一个字符,放到一个T字符串的尾部。

    输出字典序最小的T字符串,每80个字符换一行输出。

    输入

    第一行一个整数N(1 le N le 2000)N(1N2000)。

    有N个字符,表示字符串S,只由大小写字母组成。

    输出

    每80字符一行输出最小字典序T。

    样例

    输入

    复制
    6
    ACDBCB
    

    输出

    复制
    ABCBCD

    提示

    子任务1,20分,1 le N le 101N10。

    子任务2,30分,1 le N le 1001N100。

    子任务3,50分,1 le N le 20001N2000。

    #pragma warning(disable:4996)
    #include <iostream>
    #include <cstdio>
    #include <vector>
    #include <set>
    #define MAX 2001
    using namespace std;
    
    bool check(char* s, int l, int r)
    {
        while (l <= r && s[l] == s[r])
        {
            l++;
            r--;
        }
        return s[l] < s[r];
    }
    
    int main()
    {
        int n;
        char s[MAX], t[MAX];
        scanf("%d%s", &n, s);
        int l = 0, r = n - 1;
        int m = 0;
        while (l <= r)
        {
            t[m++] = check(s, l ,r) ? s[l++] : s[r--];
        }
        for (int i = 0; i < m; i++)
        {
            putchar(t[i]);
            if (i % 80 == 79)
            {
                putchar('
    ');
            }
        }
        return 0;
    }
    如果觉得有帮助,点个推荐啦~
  • 相关阅读:
    hdu 5936 2016ccpc 杭州
    bzoj 1218: [HNOI2003]激光炸弹
    bzoj 1296: [SCOI2009]粉刷匠
    桃子到底有多少
    计算x的n次方
    计算x的n次方
    菲波拉契数列
    菲波拉契数列
    八皇后(N皇后)问题算法程序(回溯法)
    八皇后(N皇后)问题算法程序(回溯法)
  • 原文地址:https://www.cnblogs.com/8023spz/p/15470346.html
Copyright © 2020-2023  润新知