算法 --- reduce的使用.

描述:

在這里插入圖片描述

難點:

將[[‘a’,‘b’,‘c’],[‘d’,‘e’,‘f’]]輸出為[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].

關鍵代碼描述:

1.假設我們已經根據輸入的數字得到了 rawArr = [[‘a’,‘b’,‘c’],[‘d’,‘e’,‘f’]]
2. 下一步將rawArr[0]中的每一個元素與 rawArr[1]中的每一個元素相加…
3. reduce是對數組中相鄰的元素進行操作,并將結果保留…

// 實現.
rawArr.reduce( (a,b) =>{let tmpArr= [];a.forEach(ai=>{b.forEach(bi =>{tmpArr.push(ai + bi);}}
}

總體代碼:

var letterCombinations = function(digits) {if(digits.length < 1) return []let map = new Map();map.set('2',['a','b','c']);map.set('3',['d','e','f']);map.set('4',['g','h','i']);map.set('5',['j','k','l']);map.set('6',['m','n','o']);map.set('7',['p','q','r','s']);map.set('8',['t','u','v']);map.set('9',['w','x','y','z']);digits = digits.replace(/1/g,'');let rawArr = [];digits.split('').forEach(item=>{rawArr.push(map.get(item))})let retArr = rawArr.reduce((a,b)=>{let tmpArr = [];a.forEach((ai)=>{b.forEach((bi)=>{tmpArr.push(ai + bi)})})return tmpArr})return retArr
};

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/250772.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/250772.shtml
英文地址,請注明出處:http://en.pswp.cn/news/250772.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SpringBoot、mysql配置PageHelper插件

一&#xff1a;https://blog.csdn.net/h985161183/article/details/79800737 主要異常&#xff1a;org.springframework.beans.factory.BeanCreationException: Error creating bean with name com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration: pageHelper.…

字符串的拆分以及分隔符所在不同位置的刪除

try { //根據imComuserGroupMng獲取這個數據庫的所有ImComuserGroup數據 List<ImComuserGroup> list imComuserGroupMng.findAllComuserGroup(); //便利實體數據list為數據的集合 …

算法 --- 遞歸生成括號

問題描述 思路: 1.首先生成n個括號 2.左括號數量(記為l)不超過n 3.右括號數量(記為r)不超過n,且優先生成左括號(即 l < r) 4.需要設計一個遞歸式h(str,l,r) // 一開始,str , l 0, r 0 // 第一步進去,添加左括號, str(, l 1, r 0 // 然后因為 l < n . r < l 所以…

使用 TypeScript 改造構建工具及測試用例

最近的一段時間一直在搞TypeScript&#xff0c;一個巨硬出品、賦予JavaScript語言靜態類型和編譯的語言。 第一個完全使用TypeScript重構的純Node.js項目已經上線并穩定運行了。 第二個前后端的項目目前也在重構中&#xff0c;關于前端基于webpack的TypeScript套路之前也有提到…

JavaScript 驗證表單不為空和獲取select下拉列表的值和文本

1.驗證表單不為空 var hasform { "Name": "名字", "Id_card": "身份證", "PaySalary": "月工資", "CardCode": "賬號", "Fk_Subjectf_Code": &quo…

javascript --- 變量污染全局作用域問題解決方案

日常寫法 // 假設你寫了幾個關于某個某塊的函數 function foo1 () {...} function foo2 () {...} function foo3 () {...}出現問題:假設你的團隊中也有一個人定義了foo1函數,那么你寫的將會覆蓋以前的函數,或者會被覆蓋掉.若前面使用let聲明了foo1變量.將會報錯. 解決污染 你…

solr7.4 安裝與使用

1.solr7環境要求 solr7需要java8環境&#xff0c;且需要在環境變量中添加 JAVA_HOME變量。 2.solr 安裝 下載地址 https://lucene.apache.org/solr/mirrors-solr-latest-redir.html 我下載為7.4版本 在solr5以前solr的啟動都有tomcat作為容器&#xff0c;但是從solr5以后solr內…

初入HTML5

在最開始接觸HTML5的時候&#xff0c;你會遇到的大多是一些常見常用的屬性以及屬性值。它們分類廣、品種雜且使用率高。到css各種樣式的時候&#xff0c;你會接觸到更多的東西&#xff0c;各種屬性、選擇器、盒子模型都是重點。那么&#xff0c;現在我們就看一下它們到底是什么…

javascript --- 讓函數的實例可以鏈式調用

關鍵: 在每個函數的末尾加上 return thisthis:在javascript中表示當前的對象 栗如: 有以下函數 var fooObj {foo1: function() {console.log(1);},foo2: function() {console.log(2);},foo3: function() {console.log(3);} }// 你想通過 fooObj.foo1().foo2().foo3() // …

ReactiveCocoa基礎

本文轉載自最快讓你上手ReactiveCocoa之基礎篇&#xff0c;在此基礎上稍作修改&#xff0c;歡迎交流。 有關對 ReactiveCocoa 的看法可以看一下唐巧的這篇ReactiveCocoa 討論會 ReactiveCocoa思維導圖ReactiveCocoa簡介 ReactiveCocoa&#xff08;簡稱為RAC&#xff09;,是由Gi…

javascript --- 創建一個二維數組

想創建一個 n*n 的矩陣,并全部賦予初始值false 你可能會想到下面 let arr []; for(let i 0 ;i< n;i) {arr[i] [];for( let j 0; j< n; j){arr[i][j] false;} }稍微封裝一下: function Cmatrix(n, c) {let arr [];for (let i 0; i < n; i) {arr[i] [];for (le…

配置OpenCV產生flann\logger.h(66): error C4996: ‘fopen': This function or variable may be unsafe問題

轉載自&#xff1a;http://guoming.me/%E9%85%8D%E7%BD%AEopencv%E4%BA%A7%E7%94%9Fflannlogger-h66-error-c4996-fopen-this-function-or-variable-may-be-unsafe%E9%97%AE%E9%A2%98 今天使用vs2012配置OpenCV編譯出現問題: 1>—— 已啟動生成: 項目: Win32ForOpenCV245, 配…

android listview和simpleadapter 給itme 中的控件添加事件

simpleAdapter.setViewBinder(new SimpleAdapter.ViewBinder() { Override public boolean setViewValue(View view, Object data, String textRepresentation) {   Log.d("進入setview","進入setview");if(view instanceof Button &&am…

0 uC/OS 系統精講索引

uC/OS-II與uC/OS-III放在一起講&#xff0c;每個例程同時提供兩個版本的源代碼。 本系列教程主要涉及如下內容&#xff1a; 【原理部分】 1-操作系統簡介&#xff1a;基本概念 2-目錄結構與測試環境搭建&#xff1a;uC/OS-III emWin VS2015 2.1 官方文件目錄結構 【*】uC/Lib …

OPENCV-1 學習筆記

灰度圖&#xff1a;2維矩陣 彩色圖&#xff1a;3維矩陣 ps&#xff1a;目前大部分設備都是用無符號 8 位整數&#xff08;類型為 CV_8U&#xff09;表示像素亮度 Mat類定義&#xff1a; class CV_EXPORTS Mat { public://一系列函數.../* flag 參數中包含許多關于矩陣的信息…

javascript --- repeat的用處

描述 思路: 最多重復s.length次使用String.prototype.repeat(n)方法可以將字符串重復n次 核心: while( i < len/2){if( s s.slice(0,i).repeat(len /i) ) {return ture;} }總體代碼: var repeatedSubstringPattern function(s) {let i 1;let len s.length;while (i …

redis 零散知識

1、單線程 2、默認 16 個庫。0~15 3、select &#xff1a;切換數據庫 4、DBsize &#xff1a;查看當前數據庫的數量 5、keys * &#xff1a;查看當前庫的所有 key 6、keys k? &#xff1a;問號是占位符 7、FlushDB &#xff1a;清除當前庫 8、FlushAll &#xff1a;清除所有庫…

模型評估——定量分析預測的質量

https://blog.csdn.net/hustqb/article/details/77922031 評分參數定義模型評價規則 公共案例預定義值根據度量函數定義你的評分策略應用你自己的評分對象使用多種度量指標分類度量 從二分類到多分類多標簽精確度Cohens kappa混亂矩陣分類報告漢明損失Jaccard 相似性相關系數準…

OPENCV-2 學習筆記

1、圖像顯示 #include<opencv2/opencv.hpp> using namespace cv; //使用命名空間 void main(){Mat srcImage imread(1.jpg);//載入圖像imshow(圖像標題,srcImage);//顯示圖像waitKey(0);//等待按鍵按下 } 2、圖像腐蝕 #include <opencv2/opencv.hpp> #incl…

javascript --- 對象的方式體驗鏈式調用

將功能相近的方法寫入同一個對象中,是一個很好的編程習慣,便于后期的維護和前期的開發. foo1 var fooObj {foo1: function() {console.log(foo1);return this;} } fooObj.foo1();此有一個對象: fooObj它有一個方法: foo1()foo1打印了一個字符串’foo1’,然后返回了當前的執行…