一位關鍵的證人被謀殺了,他在臨死前想說出兇手的姓名,但聲音很微弱又斷斷續續,難以分辨。
我們取得了他的錄音,用一個字串表示,這個字串以一個字母開頭,每一個「~」符號代表一個不確定的字母。
字串的長度並不意味著名字的長度,因為他有可能在說出兇手完整名字前就咽氣了。
警方提供了一份嫌犯的名單,要你協助,根據錄音,找出兇手。
結果應該為字串,如果找不到,返回空字串,如果找出了多個,請返回這些,並用逗號分割開來。
var suspects=['Bernard Deltheil','Peter Gone','Peter Reeves','Roland Scorsini'] sc('b~~~~~~~~~~~~~~l',suspects); //'Bernard Deltheil' sc('p~t~r',suspects); //'Peter Gone,Peter Reeves' sc('a~b~c~~d',suspects); //''
注意:
1.對每一個嫌犯的姓名進行匹配,要忽略大小寫。
2.代碼應盡可能簡短
下面的實現,我使用了正則表達式,先將字符串內的“~”符號替換為“.”,再將其作為模式一部分,和姓名做匹配。
function sc(s,a){ var r = []; a.forEach((e)=>{if(new RegExp("^" + s.replace(/~/g,"."),"i").test(e))r.push(e);}); return r.join(","); }
以上就是JavaScript趣題,找出兇手的內容,更多相關內容請關注PHP中文網(www.php.cn)!