Un témoin clé a été assassiné. Avant de mourir, il a tenté de nommer le meurtrier, mais sa voix était faible et intermittente, ce qui la rendait difficile à distinguer.
Nous avons obtenu son enregistrement, représenté par une chaîne. Cette chaîne commence par une lettre, et chaque symbole "~" représente une lettre incertaine.
La longueur de la chaîne ne signifie pas la longueur du nom, car il peut mourir avant de prononcer le nom complet du meurtrier.
La police a fourni une liste de suspects et demande votre aide pour retrouver le meurtrier sur la base de l'enregistrement.
Le résultat doit être une chaîne. S'il n'est pas trouvé, renvoyez une chaîne vide. Si plusieurs sont trouvés, veuillez les renvoyer séparés par des virgules.
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); //''
Remarque :
1. Faites correspondre le nom de chaque suspect, en ignorant le cas.
2. Le code doit être aussi court que possible
Pour l'implémentation suivante, j'ai utilisé des expressions régulières pour remplacer d'abord le symbole "~" dans la chaîne par "." dans le cadre du motif, assorti au nom.
function sc(s,a){ var r = []; a.forEach((e)=>{if(new RegExp("^" + s.replace(/~/g,"."),"i").test(e))r.push(e);}); return r.join(","); }
Les questions JavaScript ci-dessus sont amusantes pour découvrir le meurtrier. Pour plus de contenu connexe, veuillez prêter attention au site Web PHP chinois (www.php. .cn) !