阿里笔试算法题之词的匹配

这是一道来自阿里中间件笔试的题目,要求根据给定的字符串和匹配模式判断是否符合模式。解题思路是将字符串按空格切词并用Map保存匹配关系,然后遍历模式,检查Map中的词是否与模式对应。最后给出完整代码实现。
摘要由CSDN通过智能技术生成

词的匹配

该题目来源于:阿里中间件笔试,我的联系方式(QQ):1193600556,欢迎交流

阿里巴巴笔试 有一个字符串它的构成是词+空格的组合,如“北京 杭州 杭州 北京”, 要求输入一个匹配模式(简单的以字符来写).
比如 aabb,来判断该字符串是否符合该模式, 举个例子:

pattern = “abba”, str=”北京 杭州 杭州 北京” 返回 ture
pattern = “aabb”, str=”北京 杭州 杭州 北京” 返回 false
pattern = “baab”, str=”北京 杭州 杭州 北京” 返回 ture

解法

  • 首先以空格切词,并使用一个Map保存匹配关系
  • 遍历模式,在匹配关系中查找key
  • 如果找到,比较value是否与词是否相同,如果不同,返回false
  • 如果未找到,查找value,如果存在返回false,不存在则将key,value存入
  • 遍历结束,返回true
public static boolean wordPattern(String pattern, String str) {
        if (str == null || pattern == null)
            return false;

        Map<Character, String> reflect =
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值