[LeetCode]Word Pattern II
2015-12-01 09:01
337 查看
public class Solution { public boolean wordPatternMatch(String pattern, String str) { return helper(pattern, str, new HashMap<Character, String>(), new HashMap<String, Character>()); } public boolean helper(String pattern, String str, HashMap<Character, String> map1, HashMap<String, Character> map2) { if (pattern.length() == 0 && str.length() == 0) { return true; } if (pattern.length() == 0 || str.length() == 0) { return false; } char ch = pattern.charAt(0); if (map1.containsKey(ch)) { String tmp = map1.get(ch); if (tmp.length() > str.length() || !tmp.equals(str.substring(0, tmp.length()))) { return false; } else { return helper(pattern.substring(1), str.substring(tmp.length()), map1, map2); } } else { for (int i = 1; i <= str.length(); i++) { if (map2.containsKey(str.substring(0, i))) { continue; } map1.put(ch, str.substring(0, i)); map2.put(str.substring(0, i), ch); if (helper(pattern.substring(1), str.substring(i), map1, map2)) { return true; } map1.remove(ch); map2.remove(str.substring(0, i)); } } return false; } }
相关文章推荐
- C++builder 数据库常用操作
- 如何在 Linux 终端下创建新的文件系统/分区
- CentOS 6.3(x86_64)下安装Oracle 10g R2
- UNIX 家族小史
- JFinal 部署在 Tomcat 下推荐方法(转)
- python:numpy(文件存取)
- MVC模式的优缺点
- $(window).width()与window.innerWidth的区别
- 菜鸟妞的数字图像模式识别之旅(1)
- 了解HTML图像
- 生产订单总目标成本为0
- 基于Socket的java网络编程
- Struts2源码深究:StrutsPrepareAndExecuteFilter
- SAP系统成本中心、内部订单、成本流、成本要素、成本对象
- 在RedHat 6.3下安装MySQL-server-5.6.13-1.el6.x86_64.rpm
- 关于excel读写
- Cannot load settings from file
- KNN 学习笔记
- jQuery插件实现多级联动菜单效果
- UIStepper 的简单实用