字符串同构问题——leetcode205/leetcode290
来源:互联网 发布:angela baby 知乎 编辑:程序博客网 时间:2024/04/30 11:10
205. Isomorphic Strings
问题描述:
Given two strings s and t, determine if they are isomorphic.
Two strings are isomorphic if the characters in s can be replaced to gett.
All occurrences of a character must be replaced with another character while preserving the order of characters. No two characters may map to the same character but a character may map to itself.
For example,
Given "egg"
, "add"
, return true.
Given "foo"
, "bar"
, return false.
Given "paper"
, "title"
, return true.
Note:
You may assume both s and t have the same length.
解析:
这个就是判断两个字符串是否是同构的,最简单的思路就是构造字符与字符之间的映射关系。
public boolean isIsomorphic(String s, String t) { if(s==null || s.length()<=1)return true;HashMap<Character,Character> hm=new HashMap<Character,Character>();for(int i=0;i<s.length();i++){char ch1=s.charAt(i);char ch2=t.charAt(i);if(hm.containsKey(ch1)){if(hm.get(ch1)==ch2)continue;elsereturn false;}else{if(hm.containsValue(ch2))return false;elsehm.put(ch1, ch2);}}return true; }
290. Word Pattern
问题描述:
Given a pattern
and a string str
, find if str
follows the same pattern.
Here follow means a full match, such that there is a bijection between a letter inpattern
and a non-empty word in str
.
Examples:
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.
Notes:
You may assume pattern
contains only lowercase letters, and str
contains lowercase letters separated by a single space.
解析:
这个题目是不是跟上一个很相似,解题思路也是很相似,不过参考了网友的厉害的解题方法,核心代码:
//my keypublic static boolean wordPattern_My(String pattern, String str) {if(pattern==null || str==null)return true; String[] strs=str.split(" "); if(pattern.length()!=strs.length) return false; HashMap<Character,String> map=new HashMap<Character,String>(); for(int i=0;i<pattern.length();i++){ if(map.containsKey(pattern.charAt(i))){ if(map.get(pattern.charAt(i)).equals(strs[i])) continue; else return false; } else{ if(map.containsValue(strs[i])) return false; else map.put(pattern.charAt(i), strs[i]); } } return true; }//网友的解析public static boolean wordPattern(String pattern, String str) {if(pattern==null || str==null)return true; String[] strs=str.split(" "); if(pattern.length()!=strs.length) return false; HashMap<Object,Integer> map=new HashMap<Object,Integer>(); for(int i=0;i<pattern.length();i++){ if(!Objects.equals(map.put(pattern.charAt(i),i),map.put(strs[i],i))){ return false; } } return true; }
- 字符串同构问题——leetcode205/leetcode290
- Leetcode205 同构字符串
- LeetCode290 Word Pattern 同构字符串
- LeetCode205 Isomorphic Strings同构字符串
- 字符串/hashtable——leetcode205
- LeetCode205—Isomorphic Strings
- LeetCode290——Word Pattern
- Leetcode205——Isomorphic Strings
- leetcode290
- leetcode290
- 最小表示法 字符串循环同构问题
- 奇奇怪怪的字符串循环同构问题
- 字符串循环同构——最小表示法の板子
- 同构字符串
- 【字符串】【最小表示法】Vijos P1683 有根树的同构问题
- Vijos 有根树的同构问题【字符串---最小表示法】
- 数梦工场的笔试编程1——同构字符串判断
- 同构字符串 Isomorphic Strings
- 内存安全的 Lua api 调用
- 用Scrapy与Django一起搭建一个简单的爬虫框架
- [编程题]图片整理
- ExecuteScalar()方法
- 机器学习_线性回归,梯度下降算法与正规方程
- 字符串同构问题——leetcode205/leetcode290
- python的魔法方法
- poj2104
- 微信小程序
- LBP(四)
- Hrbust 1688 数论中的异或【思维+数论异或】好题~
- bzoj 3223 splay模板 【pascal】
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器