1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol AI分析

解题思路

加密把 26 个小写字母分成若干个大小至少为 2 的环(置换),对原串 s 中每个字母换成其所在环的下一个字母得到 t。 因此对每个出现于 t 的字母 y,原串对应位置的字母一定是 y 在环中的前驱,记为 pre[y];同时每个字母作为前驱最多用一次,记为 to[x] 表示 x 的后继。

目标:构造映射 pre / to,使得按 s[i] = pre[t[i]] 得到的 s 字典序最小,并且这组部分映射能扩展成“所有 26 个字母组成的、环长≥2 的置换”。

核心算法(贪心 + 末尾修正)

P3799.第2题-加密字符串

    1000ms Tried: 28 Accepted: 13 Difficulty: 5 所属公司 : 蚂蚁
    算法与标签>贪心算法

题目内容

对于一个由小写字母组成的字符串 sss ,我们可以按以下方式将其加密成字符串 ttt :

  • 将所有 262626 个小写字母任意分成若干个大小至少为 222 的环,每个字母恰好属于一个环;

  • 对于原串中的每个字母,将其替换为所在环中的下一个字母。

这样可以得到加密后的字符串 ttt 。

现在给定长度为 nnn 的加密串 ttt ,请你还原出可能的原字符串 sss 中字典序最小的一个,并输出该字符串。

【名词解释】字典序比较:从字符串的第一个字符开始逐个比较,直至发现第一个不同的位置,比较这个位置字符的字母表顺序,字母序较小的字符串字典序也较小;如果比较到其中个字符串的结尾时依旧全部相同,则较短的字符串字典序更小。

输入描述

第一行输入一个整数 n(1≦n≦2×105)n(1 ≦n≦2×10^5)n(1≦n≦2×105) ,表示加密串的长度。

第二行输入一个长度为 nnn 、仅由小写字母组成的字符串 ttt 。

输出描述

输出一个长度为 nnn 的字符串 sss ,表示字典序最小的可能原字符串。保证总存在至少一个合法原串。

样例1

输入

4
azab

输出

babc

样例2

输入

6
ababca

输出

babadb

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 3, 38ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?