js编程小练习2 の 牛客

1-

 

function DNAstr(s){  //看出bug请指出
    if(s.length>=1&&s.length<=50){
        var rege=/^[A-Z]+$/g;
        if(rege.exec(s)){
            var reg=/[ATCG]{1,}/g;
            var tmp= s.match(reg);
            var lens=[];
            var max=0;
            for(var key in tmp){
                lens.push( tmp[key].length);
            }
            for(var key in lens){
                if(lens[key] > max){
                    max = lens[key];
                }
            }
            return max;
        }
    }
}
var s="TARCAT";
console.log(DNAstr(s));

 

function isParam(ch){
    return ch == 'A' || ch == 'T' || ch == 'C' || ch == 'G';
}
function DNAStr(str){
    var i  = 0;
    var maxlen = 0;
    var maxSr = "";
    while(i < sttr.length){
        var len = 0;
        if(isParam(str[i])){
            while(i<str.length && isParam(str[i])) {i++;len++;}
        }else {
            i++;
        }
        if(maxlen < len){
            maxlen = len;
            maxStr = str.slice(i - len, i);
        }
    }
    console.log(maxStr);
    return maxlen;
}
console.log(DNAStr("TARACTGACTGHT"));

 

 

2-

 

function isSame(str){  //判断是否偶串
    var begin = 0
    var end = str.length /2
    while(end < str.length && str[begin] == str[end] ){
        begin++
        end++
    }
    if( end == str.length  ){
        return true
    }
    return false
}
function  isOString(str){  //从末尾删除若干个字符后,判断是否还是偶串
    var max = 0
    if(str.length <= 1){
        return str.length
    }
    while(str.length >=2 ){
        str = str.slice(0,str.length- 2)
        if(isSame(str)){  //调用偶串判断方法
            return str.length
        }
    }
    return 0
}
console.log(isOString("abaababaab"))

 

 

3-

 

function reverseStr(str){ //回文串
    var mp={};
    for(var key in str){
        if(!mp[str[key]]){
            mp[str[key]]=1;
        }else{
            mp[str[key]]++;
        }
    }
    var odd=0;//mp中字符个数为奇数的个数
    for(var key in mp){
        if(mp[key]%2!=0){
            odd++;
        }
    }
    return odd ? odd : 1;
}
console.log(reverseStr("abbaa"));//1
console.log(reverseStr("abc"));//3
console.log(reverseStr("abcabc"));//1

 

ps:看出bug的帮忙指出,谢

 

转载于:https://www.cnblogs.com/haimengqingyuan/p/7237151.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值