1. 程式人生 > 實用技巧 >前端演算法題解析 《一》

前端演算法題解析 《一》

同構字串

給定兩個字串s和t,判斷它們是否是同構的。
如果s中的字元可以被替換得到t,那麼這兩個字串是同構的。
所有出現的字元都必須用另一個字元替換,同時保留字元的順序。兩個字元不能對映到同一個字元上,但字元可以對映自己本身。

示例 1:

輸入: s = "egg", t = "add"
輸出: true

示例 2:

輸入: s = "foo", t = "bar"
輸出: false

示例 3:

輸入: s = "paper", t = "title"
輸出: true

解析: 解題思路:這個形式的函式結構想通,那麼同一座標下下的值在本字串中的存在不存在是一樣的 ,由此我們可以得出解題思路

const isIsomorphic = function(s, t) {
    return s.split('')   // 字串切割
            .reduce((res, ele, index) => { // ruduce 迴圈
        if (s.indexOf(s[index]) != t.indexOf(t[index])) { // 當同樣下標下的字串在該字串中存在與否是否相同時可以判斷得出
            return false;
        } else {
            return res;
        } 
    }, true)
};

知識點收貨

recude 引數以及處理方式:

callback (執行陣列中每個值的函式,包含四個引數)

    1、previousValue (上一次呼叫回撥返回的值,或者是提供的初始(initialValue))
    2、currentValue (陣列中當前被處理的元素)
    3、index (當前元素在陣列中的索引)
    4、array (呼叫 reduce 的陣列)

    initialValue (作為第一次呼叫 callback 的第一個引數。)