JavaScript:如何同时获取数组中指定起止字符的所有索引对?
直接获取起始/结束字符索引对的方法
当然可以直接遍历数组一次就拿到目标索引对,不用先分别收集两个字符的索引再配对,具体实现思路和代码如下:
- 遍历数组时,实时记录最近遇到的起始字符索引
- 当碰到结束字符时,如果存在未配对的起始索引,就将这组索引对存入结果,同时重置起始索引记录(避免同一个起始字符匹配多个结束字符)
示例代码(Python)
arr = ['a', 'b', 'c', 'd', 'e', 'a', 'c'] start_char = 'a' end_char = 'c' index_pairs = [] last_start = None for idx, char in enumerate(arr): if char == start_char: last_start = idx elif char == end_char and last_start is not None: index_pairs.append([last_start, idx]) last_start = None # 重置,确保一个起始只匹配最近的下一个结束 print(index_pairs) # 输出: [[0, 2], [5, 6]]
这种方法的好处是只需要一次遍历,空间开销更小,而且能自然保证配对的合理性——每个起始字符只会匹配它之后第一个出现的结束字符,完全符合你示例中的需求。
内容的提问来源于stack exchange,提问作者christian20
相关产品推荐
相关产品推荐

