【Leetcode】290. Word Pattern
来源:互联网 发布:软件行业的外包 编辑:程序博客网 时间:2024/05/01 05:39
方法一:
思路:
String和char一一对应,建一个map保存String到char的映射,同时用set里面保存char, 避免出现多对1的情况。
public class Solution {。 public boolean wordPattern(String pattern, String str) { int pLen = pattern.length(); String[] strs = str.split(" "); int sLen = strs.length; if (pLen != sLen) return false; Map<String, Character> map = new HashMap<String, Character>(); Set<Character> set =new HashSet<Character>(); for (int i = 0; i < sLen; i++) { if (map.containsKey(strs[i])) { if (map.get(strs[i]) != pattern.charAt(i)) return false; } else if (set.contains(pattern.charAt(i))) return false; else { map.put(strs[i], pattern.charAt(i)); set.add(pattern.charAt(i)); } } return true; }}
Runtime:2ms
方法二:
思路:
String和char一一对应,建两个map,一个保存String到char的映射,另一个保存char到String的映射。
public class Solution { public boolean wordPattern(String pattern, String str) { int pLen = pattern.length(); String[] strs = str.split(" "); int sLen = strs.length; if (pLen != sLen) return false; Map<String, Character> map1 = new HashMap<String, Character>(); for (int i = 0; i < sLen; i++) { if (map1.containsKey(strs[i])) { if (map1.get(strs[i]) != pattern.charAt(i)) return false; } else map1.put(strs[i], pattern.charAt(i)); } Map<Character, String> map2 = new HashMap<Character, String>(); for (int i = 0; i < pLen; i++) { if (map2.containsKey(pattern.charAt(i))) { if (!map2.get(pattern.charAt(i)).equals(strs[i])) return false; } else map2.put(pattern.charAt(i), strs[i]); } return true; }}
Runtime:3ms
1 0
- 【leetcode】290. Word Pattern
- 【leetcode】290. Word Pattern
- 290. Word Pattern LeetCode
- Leetcode 290. Word Pattern
- 【LeetCode】290. Word Pattern
- LeetCode-290. Word Pattern
- LeetCode *** 290. Word Pattern
- leetcode 290. Word Pattern
- LeetCode 290. Word Pattern
- LeetCode 290. Word Pattern
- [leetcode] 290. Word Pattern
- 【LeetCode】290. Word Pattern
- LeetCode-290.Word Pattern
- Leetcode 290. Word Pattern
- leetcode:290. Word Pattern
- 290.[Leetcode]Word Pattern
- [Leetcode]290. Word Pattern
- LeetCode 290. Word Pattern
- linux目录结构
- 用Awstats工具来分析httpd和tomcat的访问日志
- Spring Ioc 源码的初探
- 微积分公理化,赶超美日不难
- 关于static的一些理解
- 【Leetcode】290. Word Pattern
- JS核心
- Eclipse开启弹出"Subversive Connector Discovery"窗口解决办法
- OpenDDS开发手册---第一章
- Java多线程问题 Top 50
- 蓝桥杯 ALGO-155 算法训练 C++ CH08 01
- 线性表——顺序表
- 用Rvest包再爬拉勾网
- vue.js环境搭建详解