字符串出现的topK问题

 

 

 

/**
 * return topK string
 * @param strings string字符串一维数组 strings
 * @param k int整型 the k
 * @return string字符串二维数组
 */
function topKstrings( strings ,  k ) {
    // write code here
    var map = new Map();
//     strings.map((item)=>{
//         map.set(item,map.get(item) ? map.get(item)+1: 1);
//     })
//     let map = new Map();
      strings.forEach(item => {
        if (map.has(item)) {
          let value = parseInt(map.get(item));
          value = value + 1;
          map.set(item, value.toString());
        }else {
          map.set(item, "1");
        }
      })
      let arr = Array.from(map);
      arr.sort((a, b) => {
        if (a[1] != b[1]){
          return b[1] - a[1]; //逆序排序  根据出现次数从大到小排序
        }else {
          if (a[0] < b[0]) {
            return -1
          } else {
            return 0;
          }
        }
      })

      return arr.slice(0, k);
    
    
    
//     let length = strings.length;
//     for(let i=0;i<length;i++){
//         if(!map.has(strings[i])){
//             map.set(strings[i],1)            
//         }else{
//             var count = map.get(strings[i]);
//             count++;
//             map.set(strings[i],count);
//         }
//     }
//     var res = [] // 结果数组
//     var temp = [] //标记前k个的顺序
//     let tempSet = new Set(strings);
//     var findSort = [...tempSet];
//     findSort.forEach((item,index)=>{
//         if(index<k){
//             temp.push(item)
//         }
//     })
//     for(let i=0;i<length;i++){
// //         if(map.get(strings[i]) <= k && strings[i] === temp[i] ){
// //             res.push([strings[i],map.get(strings[i])])
// //         }
//        if(map.get([...new Set(strings)][i]) <= k && [...new Set(strings)][i] === temp[i] ){
//             // res.push([strings[i],map.get(strings[i])])
//             res.push([...new Set(strings)][i],map.get([...new Set(strings)][i]));
//         }
//     }
//     var Res  = res.sort((a,b)=>b[1]-a[1]) // 降序排序
//     return Res;
}
module.exports = {
    topKstrings : topKstrings
};

 

posted @ 2021-06-20 13:01  TangTaue  阅读(148)  评论(0编辑  收藏  举报