leetcode刷題--Isomorphic Strings
題目:給定兩個字串s和t,判斷它們是否是同構的。
ps:所謂同構就是說有相同的結構,比如:asfsa 和 12321 。可以看作是一種對映關係,在這組字串中,a對應的1,s對應的2,f對應的3,如果滿足這一對映關係,並一直向後一直保持這種關係則可以說他們有相同的結構。
解題思路:
- 先建立一個字典,把對映關係找出來
- 再遍歷整個字串,如果不滿足對映關係則判斷為錯
不過其實可以一起結合起來,因為是找錯,只要有一處錯了就可以退出迴圈判斷為錯,所以可以邊建字典邊判斷是否滿足對映關係。但需要兩個字串各遍歷一次都沒有錯才行。
程式碼如下:
class Solution:
# @param {string} s
# @param {string} t
# @return {boolean}
def idf(self,s, t):
res = {}
for i in range(len(s)):
if s[i] not in res:
res[s[i]] = t[i]
if res[s[i]] != t[i]:
return False
return True
def isIsomorphic(self, s, t):
if len(s)!=len(t):
return False
return self.idf(s, t) and self.idf(t,s)
相關文章
- [LeetCode] 205. Isomorphic StringsLeetCode
- CF985F Isomorphic Strings (雜湊)
- LeetCode 刷題—樹LeetCode
- LeetCode刷題 堆LeetCode
- LeetCode刷題整理LeetCode
- leetcode刷題(一)LeetCode
- LeetCode刷題記錄LeetCode
- leetcode刷題筆記LeetCode筆記
- 如何使用leetcode刷題LeetCode
- Leetcode刷題分類LeetCode
- LeetCode 刷題筆記LeetCode筆記
- Leetcode刷題準備LeetCode
- LeetCode刷題—陣列LeetCode陣列
- LeetCode刷題之第701題LeetCode
- LeetCode 刷題指南(一):為什麼要刷題LeetCode
- Leetcode刷題——求眾數LeetCode
- leetcode刷題記錄 661~LeetCode
- leetcode刷題筆記605LeetCode筆記
- Leetcode刷題系列彙總LeetCode
- leetcode刷題筆記(3)(python)LeetCode筆記Python
- LeetCode刷題(javascript,python3)LeetCodeJavaScriptPython
- 用 Rust 刷 leetcode 第七題RustLeetCode
- 用 Rust 刷 leetcode 第一題RustLeetCode
- 用 Rust 刷 leetcode 第三題RustLeetCode
- 用 Rust 刷 leetcode 第二題RustLeetCode
- 用Rust刷leetcode第九題RustLeetCode
- 用Rust刷leetcode第八題RustLeetCode
- 用 Rust 刷 leetcode 第六題RustLeetCode
- 用 Rust 刷 leetcode 第五題RustLeetCode
- 用 Rust 刷 leetcode 第四題RustLeetCode
- 用Rust刷leetcode第十題RustLeetCode
- leetcode排序專題演算法刷題LeetCode排序演算法
- 【Leetcode刷題篇】leetcode56 合併區間LeetCode
- LeetCode Greatest Common Divisor of Strings All In OneLeetCode
- LeetCode刷題記錄——day5LeetCode
- LeetCode刷題記錄——day4LeetCode
- LeetCode刷題記錄——day3LeetCode
- LeetCode刷題記錄——day2LeetCode
- LeetCode刷題記錄——day1LeetCode