美文网首页
算法题:编写程序,输入打印队列,按优先级输出实际打印顺序

算法题:编写程序,输入打印队列,按优先级输出实际打印顺序

作者: 离陌夕 | 来源:发表于2021-03-16 22:22 被阅读0次

面试题:编写程序,输入打印队列,按优先级输出实际打印顺序
某个打印机根据打印队列执行打印任务,打印任务有9个优先级,用1-9表示,数字越大优先级越高,打印机每次从列队头部取出第一个任务A,然后检查队列余下任务中有没有比A优先级更高的任务,若有,则将任务A放回列队尾部,否则执行A的打印,请编写程序,根据输入打印队列,输出实际打印顺序。
输入描述:

输入一行,为每个任务优先级,优先级之间用逗号隔开

输出描述:

输出每个任务打印顺序,从0开始,用逗号隔开

示例:

输入:
9,3,5
输出:
0,2,1

输入:
1,2,2
输出:s
2,0,1

解答:

function printPrinter(str) {
  let arr = str.split(",");
  let arr2 = [...arr];
  arr2.sort((a, b) => {
    if (a === b) {
      return 0;
    }
    return a > b ? -1 : 1;
  }); // 注意
  let indexArr = [];
  let lastIndex = 0;
  for (let i = 0, len = arr.length; i < len; i++) {
    let index = arr2.indexOf(arr[i]);
    indexArr[i] = index;
    arr2[index] = undefined; // 注意
  }
  console.log(indexArr.join());
}

相关文章

网友评论

      本文标题:算法题:编写程序,输入打印队列,按优先级输出实际打印顺序

      本文链接:https://www.haomeiwen.com/subject/hoejcltx.html