leetcode(74).290. Word Pattern
来源:互联网 发布:chrome浏览器 mac 编辑:程序博客网 时间:2024/06/08 10:48
题意:
注意,put是有返回值的,返回的是:上一个关联值
给出两个字符串,一个是多个字母构成的,一个是由多个空格隔开的单词构成的,判断两者的结构是否相同。
初步分析:
用两个HashMap<字符串中的值, 出现的位置>,不断循环比较即可。
public class Solution { public boolean wordPattern(String pattern, String str) { int len = pattern.length(); String[] s = str.split(" "); if(len != s.length) return false; HashMap<Character, Integer> hm1 = new HashMap<>(); HashMap<String, Integer> hm2 = new HashMap<>(); for(int i=0; i<len; i++) { if(hm1.containsKey(pattern.charAt(i)) || hm2.containsKey(s[i])) { if(!hm1.containsKey(pattern.charAt(i)) || !hm2.containsKey(s[i])) return false; else { if(!hm1.get(pattern.charAt(i)).equals(hm2.get(s[i]))) return false; } } hm1.put(pattern.charAt(i),i); hm2.put(s[i],i); } return true; }}
注意,put是有返回值的,返回的是:上一个关联值
所以,讨论区的一个简洁的代码,厉害了。
public boolean wordPattern(String pattern, String str) { String[] words = str.split(" "); if (words.length != pattern.length()) return false; Map index = new HashMap(); for (Integer i=0; i<words.length; ++i) if (index.put(pattern.charAt(i), i) != index.put(words[i], i)) return false; return true;}虽然这个代码如果单词这边出现个冠词,那边有个a ,可能会出问题吧。。主要是put方法的返回值,往往可以加以利用,学习了。
0 0
- leetcode(74).290. Word Pattern
- 【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
- eclipse.ini:修改-vm参数让eclipse可以直接锁定到任务栏
- C函数库qsort函数及最后一个参数的相关问题
- 欢迎使用CSDN-markdown编辑器
- 各排序算法的实现及比较
- 如何统一解析JSON数据,使用Gson结合泛型类灵活,让您一劳永逸
- leetcode(74).290. Word Pattern
- MFC ListControl用法
- FIR数字滤波器设计_窗函数法
- c#简单实现GET和POST请求
- 关于SharedPreferences的原理浅析
- 我收集的一些学术资源(持续更新)
- 微信公共号(企业号)开发框架-gochat的从零开始教程(三): 智能机器人模版
- 第八届蓝桥杯练习
- Hibernate取值通过json传值问题