`

Word Pattern

阅读更多
Given a pattern and a string str, find if str follows the same pattern.

Here follow means a full match, such that there is a bijection between a letter in pattern and a non-empty word in str.

Examples:
pattern = "abba", str = "dog cat cat dog" should return true.
pattern = "abba", str = "dog cat cat fish" should return false.
pattern = "aaaa", str = "dog cat cat dog" should return false.
pattern = "abba", str = "dog dog dog dog" should return false.
Notes:
You may assume pattern contains only lowercase letters, and str contains lowercase letters separated by a single space.

比较简单的一道题目,可以先将str分割成字符数组,然后用哈希表来存储p中的字符以及对应字符数组中的字符串。其次我们还需要一个set来记录字符数组中的字符串是否已经被匹配过。代码如下:
public class Solution {
    public boolean wordPattern(String pattern, String str) {
        String[] string = str.split("\\s");
        HashMap<Character, String> hm = new HashMap<Character, String>();
        Set<String> set = new HashSet<String>();
        if(pattern.length() != string.length) return false;
        for(int i = 0; i < pattern.length(); i++) {
            if(hm.containsKey(pattern.charAt(i))) {
                if(!hm.get(pattern.charAt(i)).equals(string[i]))
                    return false;
            } else {
                if(set.contains(string[i])) {
                    return false;
                } else {
                    hm.put(pattern.charAt(i), string[i]);
                    set.add(string[i]);
                }
            }
        }
        return true;
    }
}
分享到:
评论

相关推荐

    Pattern Recognition Letters论文模板

    压缩包中包含Pattern Recognition Letters的LateX模板和word模板。

    A Business Intelligence System

    abstracted, characterized by a word pattern, and sent automatically to appropriate action points. This paper shows the flexibility of such a system in identifying known information, in finding who ...

    cpp-算法精粹

    Word Pattern 栈和队列 栈 Min Stack Valid Parentheses Longest Valid Parentheses Largest Rectangle in Histogram Evaluate Reverse Polish Notation Implement Stack using Queues 队列 Implement Queue using ...

    2020版本 Elsevier - Pattern Recognition Letters论文模板--可以直接用来编辑

    官网就给了个sty文件,不知道咋弄的可以下载这个压缩包,直接添加内容

    LeetCode最全代码

    318| [Maximum Product of Word Lengths](https://leetcode.com/problems/maximum-product-of-word-lengths/) | [C++](./C++/maximum-product-of-word-lengths.cpp) [Python](./Python/maximum-product-of-word-...

    单词规律(两个map双向映射)1

    示例 1:示例 2:示例 3:示例 4://单词分割存储//建立双向映射关系进行判断bool wordPattern(string pattern, strin

    Head First Design Pattern 学习笔记

    著名的《Head First Design Pattern》学习笔记,摘要这本书中的设计思路。由于书本过长,整理出笔记帮助回想起设计模式。文件是docx格式,只能由OFFICE Word 2007之后的版本打开,内附Visio类图文件。本文由个人整理...

    模式识别的实验报告word版本

    struct pattern//pattern结构体,保存某个数字类别(0~9)的所有样品特征 { int number;//该手写数字样品个数 double feature[200][25];//各样品特征,每类手写数字最多有200个样品,每个样品有25个特征 };

    word,ppt转pdf

    可以将word,ppt转换成pdf格式, 1.安装《Apache_OpenOffice_4.1.5_Win_x86_install_zh-CN.exe》 2.将jar包加入到工程中 3.编写Java类,注意配置安装的位置 package com.han.office; import java.io.File; import ...

    java统计字符串出现次数算法--StringCounter(算法源码)

    Pattern expression = Pattern.compile(regex); Matcher matcher = expression.matcher(source); TreeMap, Integer&gt; myTreeMap = new TreeMap, Integer&gt;(); int n = 0; Object word = null; Object num ...

    word2vec-pride-vis:用最接近的 word2vec 模型词替换傲慢与偏见文本并可视化结果的技巧

    word2vec-pride-vis 用最接近的 word2vec 模型词替换傲慢与偏见文本并可视化结果的黑客。 要使用它,您需要 Python 包 gensim、pattern.py。 此处提供本地 tsne.py。 IPython 笔记本查看器链接: : 如果您想运行它并...

    PATREC-Letters-Template-v1.0.1.zip

    Pattern Recognition Letters word模板 可供下载 Pattern Recognition Letters aims at rapid publication of concise articles of a broad interest in pattern recognition.

    editplus最佳配色方案

    =======================setting_u.ini======================= [Settings] Custom=0 Extension= Description=Default File= Wildcard= First Line= ...Word Wrap=0 Auto Indent=1 Tab Indent=0 Common=0

    play framework 框架手册 word 版

    URI范示 Pattern - 15 - Java调用定义 - 17 - 把404当作action来用 - 17 - 指派静态参数 - 17 - 变量和脚本 - 18 - 路由优先级 - 18 - 服务器静态资源 - 18 - staticDir: mapping - 18 - staticFile: mapping - 19 -...

    word-Count-Visitor-Pattern:这是使用数据结构和执行带有访客模式精巧的字数统计的实现

    字数访问者模式CS542设计模式2015年Spring项目分配编号04自述文件截止日期:4月22日,星期五。 提交日期:4月22日,星期五。 作者:Vinayak Subhash Pingale 电子邮件: 性能改进的理想选择有许多方法可以实现性能...

    使用Python从有道词典网页获取单词翻译

    word=raw_input('input a word\n')\nurl='http://dict.youdao.com/search?q=%s'%word content=urllib.urlopen(url) pattern=re.compile("&lt;/h2&gt;",re.DOTALL) result=pattern.search(content.read()).group() pattern2...

    python得到单词模式的示例

    def getWordPattern(word): pattern = [] usedLetter={} count=0 for i in word: if i not in usedLetter: usedLetter[i]=count count+=1 pattern.append(str(usedLetter[i])) return '.'.join(pattern) ...

    groker:简单的库来解析go的grok模式

    echo " Hello 123 " | groker -pattern= " %{WORD:word} %{WORD:number} " // output: { " number " : " 123 " , " word " : " Hello " } echo " 2015-06-16T01:47:07.665Z " | ./groker -pattern= " %{TIMESTAMP_...

    《模式识别与智能计算》源代码

    使用时请将其转换成M文件格式,并且注意M文件中是英文状态,所以要特别注意word格式中的标点符号及提示符前面的空格是否是英文状态(在M文件中,如果字符不是英文状态,会出现波红色浪线的提示)。 如果文件中是函数...

Global site tag (gtag.js) - Google Analytics