首页 > 代码库 > LeetCode 205 Isomorphic Strings
LeetCode 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 get t.
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.
思路:
这道题要在两个字符串的字符之间建立一对一的映射,不允许一对多和多对一映射的出现。因此,可以建立一个关联两个字符串字符的map,检查是否现有键的对应值于当前值冲突,并设立一个set,检查未被存入map的键其对应值是否已经在set中出现,在二者均不出现的情况下返回true。
解法:
1 import java.util.Map; 2 import java.util.Set; 3 4 public class Solution 5 { 6 public boolean isIsomorphic(String s, String t) 7 { 8 if(s == null || t == null) 9 return false;10 if(s.length() != t.length())11 return false;12 13 Map<Character, Character> map = new HashMap<>();14 Set<Character> set = new HashSet<>();15 16 char[] sArray = s.toCharArray();17 char[] tArray = t.toCharArray();18 19 for(int i = 0; i < s.length(); i++)20 {21 if(map.containsKey(sArray[i]))22 {23 if(map.get(sArray[i]) != tArray[i])24 return false;25 }26 else27 {28 if(set.contains(tArray[i]))29 return false;30 else31 {32 map.put(sArray[i], tArray[i]);33 set.add(tArray[i]);34 }35 }36 }37 38 return true;39 }40 }
LeetCode 205 Isomorphic Strings
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。