遍历数字列表提取特定模式并转换为对应字母序列的实现问询
实现代码(Python版本)
def convert_num_list(num_list): res = [] # 按长度为4的滑动窗口遍历原列表 for i in range(len(num_list) - 3): window = num_list[i:i+4] mapping = {} window_str = [] for num in window: if num not in mapping: # 按首次出现顺序映射为对应字母,首个新元素对应A mapping[num] = chr(ord('A') + len(mapping)) window_str.append(mapping[num]) res.append(''.join(window_str)) return res # 示例测试 a = [2, 9, 3, 2, 3, 5, 7, 9] b = convert_num_list(a) print(b) # 输出结果:['ABCA', 'ABCB', 'ABAC', 'ABCD', 'ABCD']
逻辑说明
- 滑动窗口步长固定为1,遍历次数等于
原列表长度-3,输出列表长度完全符合要求 - 每个窗口独立维护映射字典,不同窗口的映射规则互不干扰
- 字母映射无需额外计数变量,直接通过字典当前长度计算:插入第一个新元素时字典长度为0,对应
A,插入第二个新元素时字典长度为1,对应B,以此类推
内容的提问来源于stack exchange,提问作者userpisquared
相关产品推荐
相关产品推荐

