Re: [閒聊] 每日LeetCode

看板Marginalman作者 (caster)時間2年前 (2022/12/28 11:37), 2年前編輯推噓1(102)
留言3則, 3人參與, 2年前最新討論串157/719 (看更多)
205. Isomorphic Strings 給兩個字串s跟t,判斷他們是否是同構字。 如果他們是同構字,表示s裡面毎個字元都可以拿來對應t的特定字元。 全部的字元都要依順序被取代,而且s一種字元只會對應t一種字元,也可能對應到與自己 相同的字元。 Example 1: Input: s = "egg", t = "add" Output: true Input: s = "foo", t = "bar" Output: false Input: s = "paper", t = "title" Output: true 思路: 這題主要用map的概念,就我理解,map是指輸入一個值就會跑出對應的值 ,兩個值必為一對一對應關係。所以我們先設定兩個空陣列, 之後把s[i]放入array的指引,之後使array1[s[i]]=t[i]且array2[t[i]]=s[i] 假設後面array1[s[i]]!=t[i]則回傳false,反之則繼續執行迴圈。 假若迴圈執行完畢,array1[s[i]] == t[i],則回傳true。 C Code ------------------ #include <string.h> bool isIsomorphic(char * s, char * t){ int array1[256]={0}; int array2[256]={0}; for(int i=0;i<strlen(s);i++){ if(array1[s[i]]==0){ if(array2[t[i]]==0){ array1[s[i]]=t[i]; array2[t[i]]=s[i]; }else{ return false; } }else{ if(array1[s[i]]!=t[i]){ return false; } } } return true; } ------------------ 補記: 學到map的觀念,不過演算法教學沒幾個用C,找了好久才找到。 然後解答沒幾個用C,一堆C++跟C#混在裡面== -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.43.119.103 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1672198670.A.830.html

12/28 11:41, 2年前 , 1F
漬鯊哥幫我內推google
12/28 11:41, 1F
※ 編輯: sustainer123 (223.137.14.32 臺灣), 12/28/2022 11:42:06

12/28 11:44, 2年前 , 2F
要是我未來能混進去 一定==
12/28 11:44, 2F

12/28 11:46, 2年前 , 3F
大師
12/28 11:46, 3F
文章代碼(AID): #1ZgxeEWm (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1ZgxeEWm (Marginalman)