阿里实习编程题1

24 篇文章 0 订阅
23 篇文章 0 订阅

阿里的消息中间件,负责淘宝天猫支付宝等各个系统的消息中转,削峰填谷及架构的解耦。在每年的双11中承载了数万亿的消息。消息中间件中有Pub/Sub两个角色,Pub方发送消息到消息中间件,消息中间件再根据订阅关系投递给订阅方。例如用户成功购买了一个物品,交易平台(Pub)会发送一条交易完成(trade-done)的消息,购物车平台(Sub)订阅到这个消息后,会将用户的购物车物品删除掉。这里涉及一个问题,交易平台会发送各种类型的消息,消息中间件是如何准确的将相应的消息投递给购物车平台的?所使用的就是消息中间件的过滤功能,过滤的方式有很多种,表达式判断,正则匹配等。假设让你来实现一个过滤功能,来匹配订阅关系是否符合,给定如下条件:
‘?’ 匹配一个字符
‘*’ 匹配任意连串的字符
如上面的例子中,购物车平台订阅方式是pattern=*trade-done,那么
filter(100-trade-done, pattern) = 1,
filter(200-trade-done, pattern) = 1,
filter(200-paid-done, pattern) = 0

如果pattern=200-?*-done :
filter(100-trade-done, pattern) = 0,
filter(200-trade-done, pattern) = 1,
filter(200-paid-done, pattern) = 1

如果pattern=1*trade*done :
filter(100-trade-done, pattern) = 1,
filter(200-trade-done, pattern) = 0,
filter(200-paid-done, pattern) = 0

编译器版本: Java 1.8.0_66
请使用标准输入输出(System.in, System.out);已禁用图形、文件、网络、系统相关的操作,如java.lang.Process , javax.swing.JFrame , Runtime.getRuntime;不要自定义包名称,否则会报错,即不要添加package answer之类的语句;您可以写很多个类,但是必须有一个类名为Main,并且为public属性,并且Main为唯一的public class,Main类的里面必须包含一个名字为’main’的静态方法(函数),这个方法是程序的入口
时间限制: 1S (C/C++以外的语言为: 3 S) 内存限制: 64M (C/C++以外的语言为: 576 M)
输入:
第一行,需要过滤的字符串 第二行,匹配模式
输出:
匹配结果,匹配成功返回1,匹配失败返回0
输入范例:
100-trade-done
1*trade*done
输出范例:
1
待解析

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值