Leetcode:205. Isomorphic Strings(JAVA)

来源:互联网 发布:mac无法识别u盘启动盘 编辑:程序博客网 时间:2024/06/16 05:28

【问题描述】

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.

【思路】

保存一个hashmap,保存映射关系

同时维护一个set,保证一个character不能被同时映射到两个字符上。


【code】

public class Solution {    public boolean isIsomorphic(String s, String t) {if (s.length() != t.length()) {return false;}HashMap<Character, Character> map = new HashMap<Character, Character>();Set<Character> set = new HashSet<Character>();for (int i = 0; i < s.length(); i++) {char sc = s.charAt(i);char tc = t.charAt(i);if (map.containsKey(sc)) {if (map.get(sc) == tc) {continue;} else {return false;}}else {if (set.contains(tc)) {return false;}else {map.put(sc, tc);set.add(tc);}} }return true;      }}


0 0