[抄题]:

You have a list of words and a pattern, and you want to know which words in words matches the pattern.

A word matches the pattern if there exists a permutation of letters p so that after replacing every letter x in the pattern with p(x), we get the desired word.

(Recall that a permutation of letters is a bijection from letters to letters: every letter maps to another letter, and no two letters map to the same letter.)

Return a list of the words in words that match the given pattern.

You may return the answer in any order.

Example 1:

Input: words = ["abc","deq","mee","aqq","dkd","ccc"], pattern = "abb"
Output: ["mee","aqq"]
Explanation: "mee" matches the pattern because there is a permutation {a -> m, b -> e, ...}.
"ccc" does not match the pattern because {a -> c, b -> c, ...} is not a permutation,
since a and b map to the same letter.

[暴力解法]:

时间分析:

空间分析:

[优化后]:

时间分析:

空间分析:

[奇葩输出条件]:

[奇葩corner case]:

[思维问题]:

以为要像处理["abc","bcd","xyz"]一样,累计diff = string.charAt(i) - string.charAt(i - 1);

但是这道题其实和总偏移量没啥关系,abb aqq acc都可以。所以要用匹配

[英文数据结构或算法,为什么不用别的数据结构或算法]:

[一句话思路]:

 s[w.charAt(i)-'a']=p[pattern.charAt(i)-'a']=i+1;一次匹配一对,没匹配上不行

[输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):

[画图]:

[一刷]:

控制真假的boolean变量,在计算每个单词之前,要恢复成true的初始状态

[二刷]:

[三刷]:

[四刷]:

[五刷]:

[五分钟肉眼debug的结果]:

[总结]:

s[0] = p[9] = 相同的位置坐标,一次匹配一对

[复杂度]:Time complexity: O(n2) Space complexity: O(n)

[算法思想:迭代/递归/分治/贪心]:

[关键模板化代码]:

[其他解法]:

[Follow Up]:

[LC给出的题目变变变]:

[代码风格] :

[是否头一次写此类driver funcion的代码] :

[潜台词] :

class Solution {public List<String> findAndReplacePattern(String[] words, String pattern) {//initialiazationList<String> result = new ArrayList<String>();//for loop for each wordfor (String word : words) {boolean match = true;int[] w = new int[26]; int[] p = new int[26];//for loop for each charfor (int i = 0; i < word.length(); i++) {if (w[word.charAt(i) - 'a'] != p[pattern.charAt(i) - 'a']) {match = false;break;}if (match == true) {w[word.charAt(i) - 'a'] = i + 1;p[pattern.charAt(i) - 'a'] = i + 1;}}if (match == true) result.add(word); }//return return result;}
}

View Code

转载于:https://www.cnblogs.com/immiao0319/p/9595929.html

890. Find and Replace Pattern找出匹配形式的单词相关推荐

  1. excel中对比两个sheet,找出匹配不上的

    问题描述:数据的特点是,在同一个excel文件中存在两个sheet,他们的数据结构是一样的,其中一个中的数据是另一个的子集,目的是要找出他们的不同,即找出在那张大些的sheet中存在,但在那张小些的s ...

  2. Sql Server 在数据库中所有表所有栏位 找出匹配某个值的脚本(转)

    转自: http://blog.csdn.net/chenghaibing2008/article/details/11891419 (下面代码稍有修改,将要查找的内容直接作为参数传人,并且使用=而不 ...

  3. python找最长的单词,Python 找出英文单词列表(list)中最长单词链

    这篇文章主要介绍了Python 找出英文单词列表(list)中最长单词链,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 本文主要 ...

  4. 每日一程-18.找出文件中元音为'aeiou'的单词

    Author: Notus(hehe_xiao@qq.com) Create: 2019-02-25 Update: 2019-02-25 找出文件中元音为'aeiou'的单词 环境 Python v ...

  5. python 词库 匹配_python从一段文本中找出存在于词库的词语

    python从一段文本中找出存在于词库的词语 有现成的库吗? 可能不是最佳答案,只是提供一个思路. 个人觉得这个问题并不需要什么库,先把词库载入,弄成列表什么的.然后再把你需要匹配的文本读入,反过来想 ...

  6. python求近似值_python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配...

    已知一个元素,在一个list中找出相似的元素 使用场景: 已知一个其它来源的字符串, 它有可能是不完全与我数据库中相应的字符串匹配的,因此,我需要将其转为适合我数据库中的字符串 使用场景太绕了, 直接 ...

  7. LeetCode 28. 找出字符串中第一个匹配项的下标 -- 字符串编码成数字匹配

    找出字符串中第一个匹配项的下标 中等 1.6K 相关企业 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 ...

  8. 28.找出字符串中第一个匹配项的下标

    28.找出字符串中第一个匹配项的下标 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始).如果 ...

  9. 算法Day8|字符串专题二 剑指 Offer 58 - II. 左旋转字符串,28. 找出字符串中第一个匹配项的下标,459. 重复的子字符串

    剑指 Offer 58 - II. 左旋转字符串 解题思路: 反转区间为前n的子串 反转区间为n到末尾的子串 反转整个字符串 class Solution {public String reverse ...

最新文章

  1. 卷积神经网络CNN---权值共享
  2. 8.Map集合(HashMapTreeMap)
  3. 发送意图到浏览器以打开特定的URL [重复]
  4. python培训好学吗-开平北大青鸟:Python培训怎么选?Python好学吗?
  5. C++ 下使用curl 获取ftp文件
  6. c++中组数的替代方案
  7. json的格式和简单例子
  8. java 高并发mqtt服务器_Boomer 实战压测 mqtt,2w 并发轻松实现
  9. 在Extjs中对日期的处理,以及在后端数据在SQL语句的判断处理
  10. 马云的经典语录(转载)
  11. gdb在cygwin下的安装
  12. ArcGIS10从入门到精通系列实验视频教程合集(持续更新)
  13. 2021-2027全球与中国智能访客管理系统市场现状及未来发展趋势
  14. android studio夜间模式,android studio怎样实现夜间模式
  15. java-net-php-python-JSP学校教育论坛管理系统开题任务书PPT计算机毕业设计程序
  16. 基于java的企业合同管理系统设计(含源文件)
  17. jquery+ajx post/get 实例
  18. 深度学习基础:SVD奇异值分解及其意义【转】
  19. 【CC2530授课笔记】⑧ PWM实现呼吸灯,RGB三色灯,蜂鸣器播放音乐
  20. css:利用伪类处理图片加载失败的样式问题

热门文章

  1. 非科班出身,如何成为程序员?
  2. 前端开发的难点到底在什么地方?
  3. linux创建网络ntfs接点,Linux系统下挂接ntfs盘时总提示module fuse not found如何解决?...
  4. eclipse调试java web_eclipse调试web项目
  5. Python_软件安装
  6. iptv管理系统php制作,双子星IPTV管理系统搭建教程
  7. java ireport动态报表_JasperReport学习笔记5-其它数据生成动态的报表(WEB)
  8. android实机闪退,安卓模拟器,安卓真机,进入播放界面就会闪退
  9. 接口规范 12. 自动删除相关接口
  10. 考研计算机考试408背诵,今年上岸计算机准研究生分享一下计算机考研(408)经验...