Word Pattern
来源:互联网 发布:亦何为而非天下之公乎 编辑:程序博客网 时间:2024/06/18 05:24
这道题,必须得建立pattern和字符串间的一一对映关系,否则,pattern失效。这是第一次自己犯得错误。
第二次,自己用到了map的containValue方法,这个本身是好的,但需要在面试时讨论是否可行,如果不接受,还是定义一个set来确保一一对映。
public class Solution { public boolean wordPattern(String pattern, String str) { if (pattern == null || str == null) { return false; } String[] strArray = str.split(" "); if (pattern.length() != strArray.length) { return false; } Map<String, Character> map = new HashMap<>(); Set<Character> set = new HashSet<>(); for (int i = 0; i < strArray.length; i++) { if (!map.containsKey(strArray[i])) { if (!set.contains(pattern.charAt(i))) { map.put(strArray[i], pattern.charAt(i)); set.add(pattern.charAt(i)); } else return false; } else { char patternChar = map.get(strArray[i]); if (patternChar != pattern.charAt(i)) { return false; } } } // right, but not good // Map<String, Character> map = new HashMap<>(); // for (int i = 0; i < strArray.length; i++) { // if (!map.containsKey(strArray[i])) { // if (!map.containsValue(pattern.charAt(i))) // map.put(strArray[i], pattern.charAt(i)); // else // return false; // } else { // char patternChar = map.get(strArray[i]); // if (patternChar != pattern.charAt(i)) { // return false; // } // } // } // wrong // Map<Character, String> map = new HashMap<>(); // for (int i = 0; i < strArray.length; i++) { // if (!map.containsKey(pattern.charAt(i))) { // map.put(pattern.charAt(i), strArray[i]); // } else { // String patternStr = map.get(pattern.charAt(i)); // if (!strArray[i].equals(patternStr)) { // return false; // } // } // } return true; }}
0 0
- Word Pattern
- Word Pattern
- Word Pattern
- Word Pattern
- Word Pattern
- Word Pattern
- Word Pattern
- Word Pattern
- Word Pattern
- Word Pattern
- Word Pattern
- Word Pattern
- word pattern
- Word Pattern
- Word Pattern
- Word Pattern
- Word Pattern
- Word Pattern
- Leetcode 二叉树的路径输出
- 可伸缩堆(heap)的面向对象的C实现
- 命令行式下java package的编译与运行注意事项
- Codeforces 676C Vasya and String 尺取法
- Quartz以及代码实现--可以实现定时器效果
- Word Pattern
- java连接Sql server 2008步骤
- LeetCode-344 Reverse String
- eclipse将一段代码抽取为方法Extract Method
- static
- Spring web mvc DispatcherServlet (1)---配置
- 第13期 《与这世界交手》16年5月刊
- [Android] android.app.Activity.findViewById(int) on a null object reference
- 异常典型编程题