LeetCode---Isomorphic Strings、Word Pattern解题分析
来源:互联网 发布:js滚动选择控件 编辑:程序博客网 时间:2024/05/16 12:29
题意描述:
Isomorphic Strings(同构字符串):给定两个字符串,判断它们是否为同构字符串,如下:
Given "egg", "add", return true.Given "foo", "bar", return false.Given "paper", "title", return true.
Word Pattern(单词模型):给定两个字符串,一个是由字符组成,另是一个是由字符串组成,判断它们是否为同构字符串,如下:
pattern = "abba", str = "dog cat cat dog" should return true.pattern = "abba", str = "dog cat cat fish" should return false.pattern = "aaaa", str = "dog cat cat dog" should return false.pattern = "abba", str = "dog dog dog dog" should return false.
Isomorphic Strings(同构字符串):相当于考察两个字符串的形式是否相同,想到利用map表这个特殊的数据结构,str1中的每个字符对应str2中的每个字符。
提交失败"aa""ab"=>false(是对的);"ab""aa"=>true(错误),所以方法应该验证字符之间的一一对应关系验证字符之间一一对应的关系,利用set
public class Solution { public boolean isIsomorphic(String s, String t) { if(s.length() != t.length())//两字符串长度不相等return false;Map<Character, Character> map = new HashMap<Character, Character>();Set<Character> set = new HashSet<Character>();for(int i=0; i<s.length(); i++){char ch = s.charAt(i);if(map.containsKey(ch)){if(!map.get(ch).equals(t.charAt(i)))return false;}else{if(set.contains(t.charAt(i)))//保证单词之间一一对应的关系return false;map.put(s.charAt(i), t.charAt(i));set.add(t.charAt(i));}}return true; }}
public class Solution { public boolean wordPattern(String pattern, String str) { String[] strs = str.split(" ");if(pattern.length() != strs.length)return false;//pattern的长度应该和字符串的长度一致才能进行匹配,否则不匹配Map<Character, String> map = new HashMap<>();//char与String的映射Set<String> unique = new HashSet<>();//保存String,避免出现多对一的情况for(int i=0; i<pattern.length(); i++){char c = pattern.charAt(i);if(map.containsKey(c)){if(!map.get(c).equals(strs[i]))return false;}else{if(unique.contains(strs[i])) return false;map.put(c, strs[i]);unique.add(strs[i]);}}return true; }}
0 0
- LeetCode---Isomorphic Strings、Word Pattern解题分析
- leetcode word pattern 以及 Isomorphic Strings --- 注意简便写法
- leetcode题解-205.Isomorphic Strings && 290. Word Pattern
- LeetCode-Isomorphic Strings-解题报告
- 【LeetCode】Isomorphic Strings 解题报告
- Leetcode290. Word Pattern & 205. Isomorphic Strings
- [leetcode] 205. Isomorphic Strings 解题报告
- [Leetcode] 205. Isomorphic Strings 解题报告
- 【LeetCode】Word Pattern 解题报告
- LeetCode 205 - Isomorphic Strings
- [LeetCode] Isomorphic Strings
- Isomorphic Strings Leetcode JAVA
- [LeetCode] Isomorphic Strings
- [LeetCode 205]Isomorphic Strings
- LeetCode 205-Isomorphic Strings
- leetcode Isomorphic Strings
- leetcode(c++) Isomorphic Strings
- leetcode--Isomorphic Strings
- 模板 大数的斐波那契额数列(可以用来求大数加法)
- input type=hidden name='x'的用法总结
- iOS-UIAlertController的另类使用
- unity 调用安卓系统摄像机和相册并对图片进行裁剪(一)
- Linux cat命令详解
- LeetCode---Isomorphic Strings、Word Pattern解题分析
- java 转义符小结
- 57-004-1 bootstrap定义一个导航页面包括bootstrap面板,表格,分页,胶囊导航等样式
- HDU-1251 统计难题(前缀树)
- OC开发 --- 连式语法API设计 (使用block)
- Java NIO系列教程(二) Channel
- CSS 多列等高
- 1、神经网络
- Mysql取某个范围内随机日期 FLOOR和LPAD