如何将以12为起始、FE为结束的一维数组转换为二维数组
实现思路
- 遍历一维数组,维护一个临时子数组存储当前正在拼接的子数组元素
- 遇到元素
12时初始化临时数组,将12作为首元素存入 - 后续遍历到的元素全部存入临时数组,直到遇到
FE,将FE存入后把整个临时数组推入结果二维数组,清空临时数组等待下一个子数组起始 - 自动忽略
12出现前、两个子数组间隔区间的无效元素
代码实现
JavaScript 版本
function convertTo2DArray(arr) { const result = []; let currentSubArr = null; for (const item of arr) { if (item === '12') { currentSubArr = [item]; continue; } if (!currentSubArr) continue; currentSubArr.push(item); if (item === 'FE') { result.push(currentSubArr); currentSubArr = null; } } return result; } // 测试用例 const strarry = ['12', '34', 'A1', 'FE', '12', '34', 'EA', '0', 'FE']; console.log(convertTo2DArray(strarry)); // 输出:[['12','34','A1','FE'], ['12','34','EA','0','FE']]
Python 版本
def convert_to_2d_array(arr): result = [] current_sub_arr = None for item in arr: if item == '12': current_sub_arr = [item] continue if not current_sub_arr: continue current_sub_arr.append(item) if item == 'FE': result.append(current_sub_arr) current_sub_arr = None return result # 测试用例 strarry = ['12', '34', 'A1', 'FE', '12', '34', 'EA', '0', 'FE'] print(convert_to_2d_array(strarry)) # 输出:[['12','34','A1','FE'], ['12','34','EA','0','FE']]
边界情况说明
- 仅保留完整的
12到FE区间,12出现后无对应FE的不完整片段不会被计入结果 - 出现连续多个
12时,以最后一个遇到的12作为子数组起始 - 起始标识
12和结束标识FE都会被包含在生成的子数组中,和需求示例一致
内容的提问来源于stack exchange,提问作者ShuSong Lu
相关产品推荐
相关产品推荐

