难度:easy
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.
思路:最近进入leetcode刷题瓶颈期,太多搞不懂的东西,看别人的代码都看不懂,咬牙熬过这段时间吧,加油。
此题的意思是给定两个长度相等的字符串,判断它们是否同构。即s中相同的字母是否对应t中相同位置的相同的字母。如在“paper”和“title” 两处的p均对应t。其他a对应i,e对应l,r对应e。所以这两个链是同构的。
用dictionary的key与value对应的关系解题。先遍历s和t,将s 到t的字符映射存放在dict中,如果存在“paper ”与“tidle”的情况,p:d与之前的p:t相冲突则会返回false.
但是如果存在“pader”和“title” 则无法正确判断。最后判断是否有相同的value与不同的key相映射的情况。