leetcode [#205]

目录

题目

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.

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.


解决方案

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.util.Hashtable;
public class Solution {
public boolean isIsomorphic(String s, String t) {
Hashtable<Character, Character> table = new Hashtable<>();
for(int i = 0; i < s.length(); i++){
if(!table.containsKey(s.charAt(i))){
if(!table.containsValue(t.charAt(i))){
table.put(s.charAt(i), t.charAt(i));
} else {
return false;
}
} else {
if(table.get(s.charAt(i)) != t.charAt(i)) return false;
}
}
return true;
}
}

注意事项

  1. 思路类似290题,模式匹配,已存在的键必须对应相同的value,不同的键不能有相同的value。