知道大家平常出去吃饭的时候有没有过这样的经历:到了餐厅准备点餐,被服务员说扫码点餐,结果扫码之后却要关注公众号。。。
不过差评君这两天看新闻的时候,发现了一件喜大普奔的事情:
< class="pgc-img">>是的,终于有人对扫码点餐这件事出击了!谢谢你,深圳市消委会!
不过说到这事,差评君就正好来借这个机会给大家讲讲关于扫码点餐的这点事儿。
首先有一个不得不说的事实,那就是我们每天要关注的公众号确实越来越多了。
但很多公众号其实并不是我们自愿关注的,基本上都是点菜的时候扫码强制关注的。
< class="pgc-img">>包括差评君在内的许多人,也对动不动就扫码感到很厌烦,可是你不扫码就没法点菜啊。。。
于是你去一家餐馆就要关注一个公众号,去十家不同的馆子就多了十个公众号。
虽说有些是服务号,一周只能发一条消息,但很多服务号都习惯在周周四或者五推送,于是差评君每周五起床的时候都会发现多了十几个小红点。。。
< class="pgc-img">>差评君也天天跟微信打交道,知道大家想多几个粉丝,扫码关注才能点餐我也认了。
但是我真的不得不吐槽几句,有些公众号的引导步骤,实在是多得离谱。。。
比如说你去一家店里吃饭,一般情况下只要扫码 - 点菜 - 下单就好了。
< class="pgc-img">>然而许多餐厅的步骤却是扫码 - 关注公众号 - 点击点菜选项 - 点菜 - 下单,结算可能还要等服务员扫码或者去前台才行,明明三步就能搞定的事情,硬是来到了六步。
而之所以商家们都开始这么干,主要是为了让顾客关注公众号,具体的原因上面也提到了,无非就是多几个粉丝,涨涨关注和阅读量,以后也能多推送点优惠,吸引一波顾客。
你永远不知道
你有多少微信好友关注了南京大牌档 ▼
< class="pgc-img">>但很多商家现在已经本末倒置了,因为消费者扫码不是为了关注你的公众号,只是想要点个菜而已啊。。。
但关注只是第一步,有些号还会自动给你开通会员。
看着好像还不错,然而这在商家那边是另一种说法。
因为开了会员之后,你就有可能愿意去进行消费或者阅读公众号,这样可以提高用户所谓的忠诚度。
编辑部同事高贵的涮羊肉 VIP 会员卡 ▼
< class="pgc-img">>除了忠诚度,在关注了商家的公众号之后,商家就会不定时给你发放一些优惠券,或者推送一些新品之类的文章。
< class="pgc-img">>粉丝多了,到店消费的次数和文章的的阅读量自然就上去了。
所以咱们看着是麻烦,但是对于商家来说,关注的人越多,自己赚的钱就越多。
差评君顺便在这里给大家讲一个叫做转化率或者留存率的东西,比如说 100 个人里面有 50 个人关注了公众号,这样转化率就是 50%。
而对于餐厅来说,由于点餐就必须扫码关注,所以理论上讲转化率是 100% 。。。
差评君作为一个写公众号多年的老狗,看到这个惊人的 100% 转化率之后,羡慕的头都快掉了。。。
可是这粉丝数量是上去了,但你问问消费者乐意吗?反正差评君是一点都不想关注商家的公众号。
而且咱们再退一步讲,关注公众号是为了点餐,可是你这点餐也不咋方便啊。。。
什么菜单加载不出来,一桌人同时点菜有延迟,重复下单,菜单逻辑混乱等等,你说这方便了个寂寞。。。
等就完事儿了 ▼
< class="pgc-img">>而且差评君去网上查找了相关的新闻,发现最担心的情况之一还是出现了,那就是老年人去饭店没办法点菜。
< class="pgc-img">>那老年人不能用智能手机点菜,叫个服务员来不行吗?
不行,因为现在一些餐厅压根连纸质的菜单都没有了。。。
< class="pgc-img">>这就相当于让老人无餐可点,想想也挺可笑的。
还有更过分的,有些公众号甚至会申请各种权限,什么定位啊通讯录啊啥的,你说你一个菜单要权限干什么。。。
< class="pgc-img">>合着商家是省了人力财力,结果把这些事全扔给消费者去强迫接受,甚至有泄露隐私的风险,消费者咋就这么惨呢。。。
尽管手机扫码可以节省人力,餐厅忙不过来的时候可以自助点餐,但是排除这个前提条件之后,手机点菜有时候并没有纸质菜单用着舒服。
而且纸质菜单不仅看起来更加直观,点起菜来也很省事儿,有些餐厅还能直接用代码来点菜。
点名表扬萨莉亚 ▼
< class="pgc-img">>差评君最喜欢的是那种自己用笔在纸上打钩 √ 的菜单,吃啥钩啥,这不比在手机屏幕上面划来划去快多了?
随着互联网时代的到来,确实有许多东西都被电子化了,但是商家不能因为图省事就来了个无脑一刀切操作,直接把纸质菜单砍掉了。
而最近一段时间,扫码这种行为已经不仅出现在了餐厅,像 KTV 这样的地方也开始需要扫码了。
然而等过一段时间再去看这个公众号的时候,却发现已经物是人非,转移给了其他公众号,俗称卖号了。。。
< class="pgc-img">>也就是说,KTV 先让你扫码关注一波,等粉丝数量差不多了,就以一个合适的价格卖给别人,而消费者就这样成为了 KTV 赚钱的流量。。。
这种行为也俗称养号,就是把一个微信号或者社交媒体账号一点点养起来,等体量足够大了之后就卖掉赚一波钱。
< class="pgc-img">>但相比扫码点单,这么做属实是有点太缺德了,餐厅最起码只是让你关注一下,KTV 这波操作可以说是直接让消费者被迫 “ 卖身 ” 了。。。
< class="pgc-img">>那话说我不关注任何公众号,只是扫个单纯用来点单的二维码,总没什么问题了吧?
其实也有,那就是第四方支付。。。
第三方支付大家都很熟悉了,它们介于银行和商户之间,像是商家摆在柜台上面的支付宝和微信支付二维码等等,这些都算是第三方支付。
< class="pgc-img">>而第四方支付也被称做聚合支付,可以理解成无论什么支付方式,都可以扫第四方支付的这一个二维码。
< class="pgc-img">>所以第四方支付是介于商户和消费者之间的,它们并不需要支付许可牌照。
尽管第四方支付在一定程度上比较方便,但这也给一些人提供了可乘之机。
由于没有牌照,所以通过第四方支付的钱有可能被卷款跑路,也有可能通过广告甚至违法的方式来获取利益,安全可靠程度不如第四方支付。
< class="pgc-img">>这里扯得有点远了,但上面说了这么多的二维码乱象,差评君也确实觉得扫码这种行为该管管了。
小到强制关注公众号,大到遭受利益损失,有时候仅仅是吃个饭的事情,却能因为一个二维码产生许多麻烦。
好在深圳市消费者委员会已经开了个好头,推出了《 扫码消费行业自律承诺 》并进行了监督。
< class="pgc-img">>但差评君还是觉得扫码关注这事儿,一时半会儿没这么容易改变。
因为前面也说了,服务号是和聊天放在一起的,这就让人感觉我们不是在用微信聊天,而是在一堆商家中找自己的好友和群聊。
即使服务号一周只能发一条消息,但是一旦商家集中推送,那么这时的微信页面可以说是灾难性的。
但不知道还有谁记得,微信是一个私人聊天工具呢?
就连微商都管微信叫做私域流量,现在可倒好,商家直接闯进了你的微信。。。
在以前,人们去饭店吃饭,二者之间只有现金交易,吃饭,付钱,走人。
而到了现在,商家可以每天挂在你的聊天首页,直接变成了 “ 大宝天天见 ” 。。。
所以这才是人们反感扫码强制关注的原因,我自己的微信,凭什么被一群商家给闯进来了?
这既是商家和消费者之间的现状,也是微信的现状。
而作为消费者的我们,也只能希望这种现象以后能有所改善了。
<>有一个理想,喂马、劈柴,周游世界。
哦,不!这是那个年轻飘逸男子的理想。
从明天起,只关心粮食和蔬菜。这才是我的理想!
关心粮食和蔬菜你以为我是一位厨师,不,你又错了。我是一位有理想、有抱负的工程师。但我酷爱餐饮!
爱生活,爱工作,曾经幻想用代码敲出一道美味佳肴,将我的所学和所好相结合,直到有一天我将幻想变成了理想,又将理想变成了现实。
你别以为这道菜品可以吃,但她散发的芳香着实让每个餐饮人陶醉,她含蓄、典雅,让人高不可攀;她朴实、完美,令人遐想无限。她还想以一己之力改变整个餐饮行业……
E家餐智慧餐饮管理系统——重新定义餐饮管理系统,用专业的餐饮管理视角,结合互联网思维、可视化的大数据分析,为店老板提供简单高效智能的管理系统。
她很勤劳—智能点菜
智能点餐
用户扫码点菜,厨房信息同步,优化点餐方式,提高餐厅的翻台率
她很缜密—扫码支付
扫码支付
根据顾客的点餐信息扫码支付,安全便捷,节省人力成本,提升用户体验
她很严格—店员管理
店员管理
接收顾客对服务员的评论,让餐厅管理者更好地管理员工绩效,提升员工质量
她很聪明—会员管理
朋友圈广告
基于微信公众号、朋友圈的营销方式为餐厅引流;根据采购供应图制定符合消费者心理的营销方式
她很贤惠—智能报表
进销存管理
非常明细的财务报表流程数据,采购供销升降榜轻松掌握顾客消费心理,为餐厅节约成本提供更好的经营数据
餐饮这个家有她更简单!
>< class="pgc-img">>题目描述]
给你一个数组 orders,表示客户在餐厅中完成的订单,确切地说, orders[i]=[customerNamei,tableNumberi,foodIt
emi] ,其中 customerNamei 是客户的姓名,tableNumberi 是客户所在餐桌的桌号,而 foodItemi 是客户点的餐品名称。
请你返回该餐厅的 点菜展示表 。在这张表中,表中第一行为标题,其第一列为餐桌桌号 “Table” ,后面每一列都是按字母顺序排列的餐品名称。接下来每一行中
的项则表示每张餐桌订购的相应餐品数量,第一列应当填对应的桌号,后面依次填写下单的餐品数量。
注意:客户姓名不是点菜展示表的一部分。此外,表中的数据行应该按餐桌桌号升序排列。
示例 1:
输入:orders=[["David","3","Ceviche"],["Corina","10","Beef Burrito"],["David",
"3","Fried Chicken"],["Carla","5","Water"],["Carla","5","Ceviche"],["Rous","3","
Ceviche"]]
输出:[["Table","Beef Burrito","Ceviche","Fried Chicken","Water"],["3","0","2","1
","0"],["5","0","1","0","1"],["10","1","0","0","0"]]
解释:
点菜展示表如下所示:
Table,Beef Burrito,Ceviche,Fried Chicken,Water
3 ,0 ,2 ,1 ,0
5 ,0 ,1 ,0 ,1
10 ,1 ,0 ,0 ,0
对于餐桌 3:David 点了 "Ceviche" 和 "Fried Chicken",而 Rous 点了 "Ceviche"
而餐桌 5:Carla 点了 "Water" 和 "Ceviche"
餐桌 10:Corina 点了 "Beef Burrito"
示例 2:
输入:orders=[["James","12","Fried Chicken"],["Ratesh","12","Fried Chicken"],[
"Amadeus","12","Fried Chicken"],["Adam","1","Canadian Waffles"],["Brianna","1","
Canadian Waffles"]]
输出:[["Table","Canadian Waffles","Fried Chicken"],["1","2","0"],["12","0","3"]]
解释:
对于餐桌 1:Adam 和 Brianna 都点了 "Canadian Waffles"
而餐桌 12:James, Ratesh 和 Amadeus 都点了 "Fried Chicken"
示例 3:
输入:orders=[["Laura","2","Bean Burrito"],["Jhon","2","Beef Burrito"],["Melis
sa","2","Soda"]]
输出:[["Table","Bean Burrito","Beef Burrito","Soda"],["2","1","1","1"]]
提示:
1 <=orders.length <=5 * 10^4
orders[i].length==3
1 <=customerNamei.length, foodItemi.length <=20
customerNamei 和 foodItemi 由大小写英文字母及空格字符 ' ' 组成。
tableNumberi 是 1 到 500 范围内的整数。
Related Topics 数组 哈希表 字符串 有序集合 排序
37 0
[思路介绍]
思路一:穷举
- 感觉思路很简单,更多的是数据结构的使用
public List<List<String>> displayTable(List<List<String>> orders) {
//set去重标题栏
Set<String> tempMenu=new HashSet<>();
Set<String> tempTable=new HashSet<>();
List<List<String>> res=new ArrayList<>();
for (List<String> list: orders
) {
tempMenu.add(list.get(2));
tempTable.add(list.get(1));
}
List<String> tempTitle=new ArrayList<>();
List<String> tempIndex=new ArrayList<>();
tempTitle.addAll(tempMenu);
tempIndex.addAll(tempTable);
Collections.sort(tempTitle);
Collections.sort(tempIndex, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return Integer.parseInt(o1) - Integer.parseInt(o2);
}
});
List<String> title=new ArrayList<>();
title.add("Table");
title.addAll(tempTitle);
//记录标题索引
Map<String,Integer> menuMap=new HashMap<>();
for (int i=0; i < title.size();i++){
menuMap.put(title.get(i),i);
}
res.add(title);
//列桌号
Map<String,Integer> tableMap=new HashMap<>();
int i=1;
for ( String index: tempIndex
) {
List<String> table=new ArrayList<>();
table.add(index);
tableMap.put(index,i);
i++;
//初始化
tempMenu.forEach(str ->{
table.add("0");
});
res.add(table);
}
//列菜名
for (List<String> list: orders){
int tableIndex=tableMap.get(list.get(1));
int menuName=menuMap.get(list.get(2));
List<String> cnt=res.get(tableIndex);
cnt.set(menuName,String.valueOf(Integer.parseInt(cnt.get(menuName)) + 1));
}
return res;
}
复制代码
时间复杂度O(nlgn+2n)时间复杂度O(nlg_{n} + 2n)时间复杂度O(nlgn+2n)
//补充一下测试用例吧
public static void main(String[] args) {
Solution solution=new DisplayTableOfFoodOrdersInARestaurant().new Solution();
List<String> l1=new ArrayList<>();
List<String> l2=new ArrayList<>();
List<String> l3=new ArrayList<>();
List<String> l4=new ArrayList<>();
List<String> l5=new ArrayList<>();
List<String> l6=new ArrayList<>();
List<List<String>> orders=new ArrayList<>();
l1.add("David");
l1.add("3");
l1.add("Ceviche");
l2.add("Corina");
l2.add("10");
l2.add("David");
l3.add("Beef Burrito");
l3.add("3");
l3.add("Fried Chicken");
l4.add("Carla");
l4.add("5");
l4.add("Water");
l5.add("Carla");
l5.add("5");
l5.add("Ceviche");
l6.add("Rous");
l6.add("3");
l6.add("Ceviche");
orders.add(l1);
orders.add(l2);
orders.add(l3);
orders.add(l4);
orders.add(l5);
orders.add(l6);
System.out.println(solution.displayTable(orders));
}
有一起刷题的小伙伴可以关注我哦!一起学习一起交流!互相吹捧,共同进步!