思路
直接模拟、按段定位(无需整体拼接)
用一个累加长度的计数器。设累计长度为acc,当前枚举的偶数为 k,其字符串为 t,长度为 ∣t∣。从 k=0 开始每次加 2:
- 若 acc+∣t∣≥n,则第 n 个字符就落在当前数字 t 中,其在 t 中的下标(从 0 开始)为 n−acc−1,答案为 t[n−acc−1];
- 否则令 acc←acc+∣t∣,k←k+2,继续。
因为只做逐段累加,不需要把前缀整串存下来,空间更省。
题目内容
小红正在数偶数:0,2,4,6,8,10,12,......,
并将这些数依次拼接成一个无穷长的字符串 "0246810121416…"。
现给定一个正整数 n ,请你确定该字符串的第 n 个字符是什么(下标从 1 开始) 。