<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      [JS] 字母異位詞分組與JS中對象鍵值特性

      題目地址:LeetCode 49. 字母異位詞分組

      原題

      給你一個字符串數(shù)組,請你將 字母異位詞 組合在一起。可以按任意順序返回結(jié)果列表。

      字母異位詞 是由重新排列源單詞的所有字母得到的一個新單詞。

      示例 1:

      輸入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
      輸出: [["bat"],["nat","tan"],["ate","eat","tea"]]
      

      示例 2:

      輸入: strs = [""]
      輸出: [[""]]
      

      示例 3:

      輸入: strs = ["a"]
      輸出: [["a"]]
      

      提示:

      • 1 <= strs.length <= 104
      • 0 <= strs[i].length <= 100
      • strs[i] 僅包含小寫字母

      這道題是一道經(jīng)典的哈希表應(yīng)用題,哈希表在這道題里面有兩個應(yīng)用:

      1. 對于一個單詞,建立字母到字母出現(xiàn)次數(shù)的映射;
      2. 對于題目給定的單詞數(shù)組,需要建立一個 特殊值 到單詞組的映射;

      其中的 特殊值 應(yīng)該滿足由單詞計算得到,且不同的字母異位詞的 特殊值 是相同的。

      官方題解

      /**
       * @param {string[]} strs
       * @return {string[][]}
       */
      var groupAnagrams = function(strs) {
          const map = new Object();
          for (let s of strs) {
              const count = new Array(26).fill(0);
              for (let c of s) {
                  count[c.charCodeAt() - 'a'.charCodeAt()]++;
              }
              map[count] ? map[count].push(s) : map[count] = [s];
          }
          return Object.values(map);
      };
      

      第一層循環(huán)遍歷的是詞組里的單詞。

      for(let s of strs){
          const count = new Array(26).fill(0);
          ...
      }
      

      一開始我很疑惑,因為對于每一個單詞,都新建了一個獨立的count來計算這個單詞中各個字母出現(xiàn)的次數(shù)。

      這里的count就是上文說到的特殊值,用來判斷字母異位詞。

      在一個單詞遍歷完所有字母后,count計算完畢,通過

      map[count] ? map[count].push(s) : map[count] = [s];
      

      特殊值 相同的單詞分為一組。

      我的困惑是每次的count都是新建的數(shù)組,每個單詞的 特殊值 不同,每個單詞都會單獨成組。
      但事實是

      JS 對象特性

      根據(jù) JS 的語言特性,對象的key只能是字符串或者Symbol類型。

      count作為數(shù)組類型,在被當作對象的key使用時,會進行隱式數(shù)據(jù)類型轉(zhuǎn)換,被轉(zhuǎn)換為一個字符串。

      于是,只要有一些單詞的字母計數(shù)一樣,那么它們的count “序列化” 成字符串之后就是相等的。因此,可以被正確地分為一組。


      測試

      在 Node.js 中測試,使用一個數(shù)組作為對象的key來創(chuàng)建一個鍵值對,輸出對象的keys發(fā)現(xiàn)自動被轉(zhuǎn)換成字符串了。

      image-20240724004023286
      posted @ 2024-07-24 00:46  feixianxing  閱讀(77)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲精品久综合蜜| 在线a亚洲老鸭窝天堂| 亚洲一级特黄大片在线观看| 狠狠噜天天噜日日噜| 午夜精品福利亚洲国产| 亚洲性日韩一区二区三区| 日本一区二区三区激情视频| 精品国产三级在线观看| 国产成人久久精品二三区| 新泰市| 亚洲一区二区三区色视频| 亚洲av午夜成人片| 男人狂桶女人出白浆免费视频 | 18禁美女裸体爆乳无遮挡| 风流老熟女一区二区三区| 中文熟妇人妻av在线| 成在线人永久免费视频播放 | 亚洲色大成网站WWW国产| 国产特色一区二区三区视频| 熟女一区| 欧美乱大交aaaa片if| 国产无遮挡又黄又爽在线视频| 亚洲欧洲精品成人久久曰| 国产免费高清69式视频在线观看| 亚洲国产精品综合久久2007| 最新亚洲人成网站在线观看| japanese无码中文字幕| 国产av一区二区三区精品| 亚洲日韩一区精品射精| 国产精品人成在线播放蜜臀| 国产盗摄xxxx视频xxxx| 久久香蕉国产线看观看怡红院妓院 | 欧美性大战xxxxx久久久| 激情啪啪啪一区二区三区| 日本亚洲一区二区精品| 亚洲av成人在线一区| 尤物国精品午夜福利视频| 亚洲区1区3区4区中文字幕码| 蜜臀av黑人亚洲精品| 无码精品一区二区三区在线| 高清中文字幕一区二区|