Given strings s andt, determine if they are isomorphic.
The strings is isomorphic if the characters in s can is replaced to get t.
All occurrences of a character must is replaced with another character while preserving the order of characters. No, characters may map to the same character and a character may map to itself.
For example,
Given "egg" , "add" return True.
Given "foo" , "bar" return FALSE.
Given "paper" , "title" return True.
Note:
Assume both s and T have the same length.
Test instructions: Determine two strings of the same string, that is, the characters in s are replaced with the corresponding characters in T, can guarantee that the different characters in s to replace the different characters in T, can be imagined as an encryption process, using some kind of mapping, the s to encrypt t
public class Solution {public Boolean isisomorphic (string s, String t) { //use map to save the mapping relationship Map<character, character> map = new hashmap<character,character> (); for (int i = 0; i < s.length (); i + +) { char key = S.charat (i); Char value = T.charat (i); if (Map.containskey (key)) { if (value! = Map.get (key)) {//exists a key->x mapping and x! = value return false; } } else if (Map.containsvalue (value)) { return false;//already has a x->value mapping, but x! = key }else{//does not exist key-> x mapping and mapping of X->value map.put (key,value); } } return true; }}
Search, feel other people's algorithm is similar to mine, did not find a very efficient algorithm, why my running time so slow
Leetcode OJ 205 Isomorphic Strings