当年练手FreeCodeCamp中的中级算法编码题 7-12 [源码]

七、DNA Pairing 生成DNA配对

代码如下:

1function pairElement(str) {
2  var arr = str.split(''),
3      rArr = [];
4  for(var i=0;i<arr.length;i++){
5    switch(arr[i]){
6      case 'A':
7        rArr.push(["A","T"]);
8        break;
9      case 'T':
10        rArr.push(["T","A"]);
11        break;
12      case 'C':
13        rArr.push(["C","G"]);
14        break;
15      case 'G':
16        rArr.push(["G","C"]);
17        break;       
18    }
19  }
20  return rArr;
21}
22 
23pairElement("GCG");

八、Missing letters 求出缺小的字母

代码如下:

1function fearNotLetter(str) {
2  var s = str.charCodeAt(0),
3      len = str.length,
4      e = str.charCodeAt(len - 1),
5      matchStr = '',
6      r = '';
7  if(e - s + 1 == len){
8    return undefined;
9  }else{
10    for(var i = s;i <= e;i++){
11      matchStr += String.fromCharCode(i);
12    }
13    for(var j = 0;j < matchStr.length; j++){
14      var t = matchStr.charAt(j);
15      if(str.indexOf(t)<0){
16        r += t;
17      }
18    }
19    return r;   
20  }
21}
22 
23fearNotLetter("abce");

九、Boo who 判断值是否为boolean值

代码如下:

1function booWho(bool) {
2  // What is the new fad diet for ghost developers? The Boolean.
3  return typeof bool === 'boolean';
4}
5 
6booWho(null);

十、Sorted Union 求多数组元素去重

代码如下:

1function uniteUnique() {
2  var arr = [],
3      rArr = [];
4  for(var n=0;n<arguments.length;n++){
5    arr.push(arguments[n]);
6  }
7  rArr = arr.reduce(function(a,b){
8    var t = [];
9    for(var i=0;i<b.length;i++){
10      if(a.indexOf(b[i])<0){
11        t.push(b[i]);
12      }
13    }
14    return a.concat(t);
15  },[]);
16  return rArr;
17}
18 
19uniteUnique([1, 3, 2], [5, 2, 1, 4], [2, 1]);

十一、Convert HTML Entities 特殊字符转义

代码如下:

1function convertHTML(str) {
2  // &colon;&rpar;
3  return str.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;').replace(/'/g,'&apos;');
4}
5 
6convertHTML("Dolce & Gabbana");

十二、Spinal Tap Case 句子转化成为标准URL格式

代码如下:

1function spinalCase(str) {
2  // "It's such a fine line between stupid, and clever."
3  // --David St. Hubbins
4  var arr = str.match(/[a-zA-Z][a-z]*/g);
5  return arr.join('-').toLowerCase();
6}
7 
8spinalCase('This Is Spinal Tap');

作者: 博主

Talk is cheap, show me the code!

发表评论

邮箱地址不会被公开。

Captcha Code