You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:查找数组中反向排列元素的索引,代码存在问题

问题分析与修正

你的代码逻辑完全走偏了——当前代码是在找自身等于反转的回文字符串(比如"aaa"或者"abba"这种),但你的需求是找数组中与其他元素互为反转的“异类”(比如数组里多数是"apple",唯独一个"elppa",要定位它的索引)。

修正思路

  1. 先确定数组里的“正常”基准元素:对比前两个元素,如果互为反转,就看第三个元素和谁一致,谁就是基准;如果前两个相同,基准直接取第一个元素。
  2. 生成基准元素的反转字符串,遍历数组找到匹配这个反转串的元素,返回它的索引。

修正后的代码

function findWrongWayFruit(orchard) {
  // 确定基准元素
  let base;
  // 处理前两个元素的关系
  const reversedFirst = orchard[0].split('').reverse().join('');
  if (reversedFirst === orchard[1]) {
    // 前两个互为反转,用第三个元素确定基准
    base = orchard[2] === orchard[0] ? orchard[0] : orchard[1];
  } else {
    // 前两个非反转关系,基准取第一个
    base = orchard[0];
  }
  const target = base.split('').reverse().join('');
  
  // 遍历查找目标元素
  for (let i = 0; i < orchard.length; i++) {
    if (orchard[i] === target) {
      return i;
    }
  }
  // 按需求场景不会走到这里,返回-1作为兜底
  return -1;
}

测试示例

输入 ["apple", "apple", "elppa", "apple"],函数会返回 2,完全符合你的需求。

内容的提问来源于stack exchange,提问作者hugo wright

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 19:38:20