HJ27 查找兄弟单词

// HJ27 查找兄弟单词
// 输入:6 cab ad abcd cba abc bca abc 1
// 输出:
// 3
// bca
// 说明:abc的兄弟单词有cab cba bca,所以输出3;
// 经字典序排列后,变为bca cab cba,所以第1个字典序兄弟单词为bca
while ((line = readline())) {
  let arr = line.split(" ");
  let length = arr.length;
  let len = arr[0]; // 待查数组长度
  let xWord = arr[length - 2]; // 要找兄弟的单词
  let xWordArr = [...xWord]; // 拆分兄弟为数组
  let xArr = [...arr]; // 拷贝一份待处理数据
  let res = []; // 储存兄弟
  while (len > 0) { // 循环遍历找兄弟
    if (xArr[len] != xWord && xArr[len].length == xWord.length) { // 不相同+长度相同
      xWordArr.forEach((str) => {
        if (xArr[len]) {
          xArr[len] = xArr[len].replace(str, ""); // 消减相同字母,
        } else {
          xArr[len] = "#"; // 空格无效字符用#代替
        }
      });
      if (!xArr[len]) {
        res.push(arr[len]); // 是兄弟就进到数组
      }
    }
    len--;
  }
  let xLen = res.sort().length; // 对兄弟排序,并获取长度
  print(xLen);
  let xIndex = arr[length - 1]; // 兄弟排序后坐标
  if (xLen && xIndex - 1 < xLen) {
    print(res[xIndex - 1]); // 存在坐标就读
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿赛工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值