首页 > 试题广场 >

迷途之家的大贤者

[编程题]迷途之家的大贤者
  • 热度指数:1302 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小红在穿越后不久,就被大贤者小紫发现了,于是小紫友好地请小红来迷途之家做客。
小红和小紫在迷途之家玩一个游戏:
两人拿到了一个字符串,小红首先操作一次,选择一个子串删除(可以删除空串,也就是相当于不操作);然后小紫继续操作一次,选择一个子串删除(可以删除空串,也就是相当于不操作)。之后得到一个最终的字符串,小红希望这个字符串的字典序尽可能大,小紫希望这个字符串的字典序尽可能小。但是请注意,两个人操作都不能选择整个字符串删除,即不能形成空串。
小紫作为东道主,非常大度的让小红先手进行游戏。
小红想知道,双方都采取最优策略时,最终生成的字符串是什么?

输入描述:
第一行输入一个正整数n,代表字符串长度。
第二行输入一个长度为n的,仅包含小写字母的字符串。
1\leq n \leq 100


输出描述:
最终生成的字符串。
示例1

输入

6
arcaea

输出

a

说明

小红删除子串"arc"形成"aea",然后小紫删除子串"ea"形成"a"。可以证明,小红无论第一轮怎么删除,小紫都可以生成字符串"a",显然是字典序最小的。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include <limits.h>
#include <math.h>
#define ll long long
#define MOD 1000000007
#define inv2 500000004
int cmp(const void *a, const void *b)
{
    return *(int *)a - *(int *)b;
}
int main()
{
    int n;
    scanf("%d", &n);
    char* s = malloc(sizeof(char) * n);
    scanf("%s", s);
    printf("%c", s[0] > s[n - 1] ? s[0] : s[n - 1]);
}
发表于 2025-11-28 18:35:17 回复(0)