寻找所有人购买的重复物品

公司为员工采购设备。orders[]6]表标3个员工的订单、购买的第j件物品、物品由小写英文字母表示(物品只有26种),请你以字符串形式按从a-z的顺序返回所有员工部共同订购的物品。包括重复物品。

示例1

输入:

orders = [“acbabd”,"abadac“,"acaba”]

输出:

"aabc”

解释:
第0个员工购买了a物品2件,b物品2件,c物品1件,d物品1件
第1个员工购买了a物品3件,b物品1件,c物品1件, a物品1件.
第2个员工购买了a物品3件,b物品1件,c物品1件
所有人都订购了2件a物品
所有人都订购了1件百物品所有人都订购了1件c物品
按照字典序从小到大顾序返回, 返回:aabc

示例2:
输入:
orders - [“efdsaac”]
输出:
“aacdefs”

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        
        var commonProduct = function(orders){
            // 保存结果
            let str = ''
            if(orders.length==1){
                console.log(orders[0])
                return
            }else{
                // 寻找orders中最短的字符串
                let [minLen, index] = [orders[0].length, 0]
                orders.forEach((element,i) => {
                    element.length<minLen?[minLen, index] = [element.length, i]:undefined
                });

                for(var j of orders[index]){  // 遍历最小字符串中的每个字符
                    // 标识,如果所有字符串中均有这个字符,那就为true
                    let flag = true
                    for(var i in orders){ //  将每个字符与其他字符串中进行比较,看是否包含
                        if(orders[i].indexOf(j)==-1){
                            // 在order[i]中没有找到期望字符,就改为false
                            flag=false
                        }
                        // 如果标识仍然为true,并且已经将orders中的字符串遍历完毕,那就将当前字符加入str中,
                        // 并且将所有的字符串中的相应字符删掉
                        if(flag && i==(orders.length-1)){
                            str+=j
                            for(let k in orders){
                                orders[k] = orders[k].replace(j, '')
                            }
                        }
                    }
                }
            }
            // 最后输出结果
            console.log(str)
        }
        orders = ["acbabd", "abadac", "acabaaaaaa"]
        commonProduct(orders)

    </script>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值