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分析

解题思路

给定长度为 n 的数组 a1,…,ana_1,\dots,a_na1​,…,an​。要求构造只含小写字母的字符串 s1…sns_1\dots s_ns1​…sn​,并满足:

  • 若 ai=0a_i=0ai​=0:sis_isi​ 必须是一个从未出现过的新字符;
  • 若 ai>0a_i>0ai​>0:有 1≤ai<i1\le a_i<i1≤ai​<i 且 si=sais_i=s_{a_i}si​=sai​​,并且在区间 (ai,i)(a_i,i)(ai​,i) 内没有与 sais_{a_i}sai​​ 相同的字符(即 aia_iai​ 正是该字符在 iii 之前的“上一次出现位置”)。

由题意保证数据合法且所需不同字符数不超过 26。

P4453.第2题-字符的位置

    1000ms Tried: 30 Accepted: 21 Difficulty: 4 所属公司 : 携程
    算法与标签>构造

题目内容

给定一个长度为 nnn 的数组 {a1,a2,...,ana_1,a_2,...,a_na1​,a2​,...,an​} 。请你构造一个长度为 nnn、仅由小写字母构成的字符串 sss ,满足对每一个位置 i(1≤i≤n)i(1≤i≤n)i(1≤i≤n):

若 ai=0a_i=0ai​=0 ,则 sis_isi​ 在位置 [1,i−1][1,i-1][1,i−1] 中从未出现过;

若 ai>0a_i>0ai​>0,则 1≤ai<i1≤a_i<i1≤ai​<i ,并且 si=sais_i=s_{a_i}si​=sai​​ ,同时在所有 ai<j<ia_i<j<iai​<j<i 的位置上均满足 sj≠sais_j≠s_{a_i}sj​=sai​​ (即 aia_iai​ 的确是 sis_isi​ 的上一个出现位置)。

换言之,aia_iai​ 给出了 sis_isi​ 的“上一个相同字符的位置”(若不存在则为 000)。保证输入一定合法,即存在至少一个满足条件的子符串。

输入描述

第一行输入一个整数 n(1≤n≤2×105)n(1≤n≤2×10^5)n(1≤n≤2×105) 表示字符串长度。

第二行输入 nnn 个整数 a1,a2,...,an(0≤ai<i)a_1,a_2,...,a_n(0≤a_i<i)a1​,a2​,...,an​(0≤ai​<i) 表示数组 aaa 。并保证所有 aia_iai​ 构成若干条严格指向更小下标的“链”,从而对应某个可行字符串。

除此之外,保证输入的数据满足:存在一个仅由小写英文字母构成的解(即构造所需的独立字符数量不超过 262626 )

输出描述

输出一行,一个长度为 nnn 的字符串 sss 。

如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。

样例1

输入

10
0 0 1 2 0 5 3 7 0 9

输出

ababccaadd

说明

设输出字符串 s="ababccaadd"s="ababccaadd"s="ababccaadd",对应关系如下(下标从 111 开始):

  • i=1,a1=0,s1=′a′i=1,a_1=0,s_1='a'i=1,a1​=0,s1​=′a′ 为新字符;

  • i=2,a2=0,s2=′b′i=2,a_2=0,s_2='b'i=2,a2​=0,s2​=′b′ 为新字符;

  • i=3,a3=1,s3=s1=′a′i=3,a_3=1,s_3=s_1='a'i=3,a3​=1,s3​=s1​=′a′,且在位置 222 处与 ′a′'a'′a′ 不同;

  • i=4,a4=2,s4=s2=′b′i=4,a_4=2,s_4=s_2='b'i=4,a4​=2,s4​=s2​=′b′,且在位置 333 处与 ′b′'b'′b′ 不同;

  • i=5,a5=0,s5=′c′i=5,a_5=0,s_5='c'i=5,a5​=0,s5​=′c′ 为新字符;

  • i=6,a6=5,s6=s5=′c′i=6,a_6=5,s_6=s_5='c'i=6,a6​=5,s6​=s5​=′c′;

  • i=7,a7=3,s7=s3=′a′i=7,a_7=3,s_7=s_3='a'i=7,a7​=3,s7​=s3​=′a′;

  • i=8,a8=7,s8=s7=′a′i=8,a_8=7,s_8=s_7='a'i=8,a8​=7,s8​=s7​=′a′;

  • i=9,a9=0,s0=′d′i=9,a_9=0,s_0='d'i=9,a9​=0,s0​=′d′ 为新字符;

  • i=10,a10=9,s10=s9=′d′i=10,a_{10}=9,s_{10}=s_9='d'i=10,a10​=9,s10​=s9​=′d′ 。

逐一核对可知,aia_iai​ 确为 sis_isi​ 的上一次出现位置(无则为 000),满足题意。

登录后即可使用 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, 74ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

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

Forgot password or username?