LeetCode刷题记录11——290. Word Pattern(easy)

LeetCode刷题记录11——290. Word Pattern(easy)

目录

LeetCode刷题记录11——290. Word Pattern(easy)

题目

语言

思路

源码

后记


题目

本题输入是两个字符串,输出是true或者false。计算过程为:依照字符串pattern的模板,去看字符串str的格式是否与pattern的相匹配,是则true,否则false。举个例子:有点类似小时候成语的格式一样:红红火火(aabb)、不了了之(abba)……。这题类似:abba->dog cat cat dog。

语言

java

思路

并行查看模式和字符串,比较他们最后出现的索引。使用map创建一个对象mymap,使用mymap.put的方法,该方法的意思应该是:如果第二次put进同样的key不同value,返回的值是被挤掉的那个value!不然就是null。

源码

public boolean wordPattern(String pattern, String str) {
    String[] words = str.split(" ");
    if (words.length != pattern.length())
        return false;
    Map mymap = new HashMap();
    for (Integer i=0; i<words.length; ++i)
        if (mymap.put(pattern.charAt(i), i) != mymap.put(words[i], i))
            return false;
    return true;
}

后记

此题方法借鉴于Stefan Pochmann大神的思路,具体可看Stefan Pochmann大神的原话

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值