LeetCode-205-同構字符串

題目描述:給定兩個字符串 s 和 t,判斷它們是否是同構的。
如果 s 中的字符可以按某種映射關系替換得到 t ,那么這兩個字符串是同構的。
每個出現(xiàn)的字符都應當映射到另一個字符,同時不改變字符的順序。不同字符不能映射到同一個字符上,相同字符只能映射到同一個字符上,字符可以映射到自己本身。
來源:力扣(LeetCode) ??
鏈接:https://leetcode-cn.com/problems/isomorphic-strings/ ??
著作權歸領扣網(wǎng)絡所有。商業(yè)轉載請聯(lián)系官方授權,非商業(yè)轉載請注明出處。
解法一:利用HashMap
首先如果s和t都為null,則直接返回true;如果s和t只有一個是null,則直接返回false;
用mappings記錄出現(xiàn)過的字符映射關系,遍歷s和t的所有字符,遍歷過程如下:
如果mappings的key中包含s當前的字符,判斷對應key的值是否等于t當前的字符,如果不相等,則返回false;
如果mappings的key中不包含s當前的字符,由于相同字符只能映射到同一個字符上,判斷mappings的values是否包含t當前的字符,如果包含,則返回false;如果不包含,則將s當前的字符和t當前的作為對應的key和value放入mappings,繼續(xù)下一遍遍歷。
最后如果遍歷完了,沒有匹配不成功的,則說明是同構的,返回true。
【每日寄語】 世界上所有的驚喜和好運,都是你累積的溫柔和善良。
標簽: