首页 > 试题广场 >

获取指定字符串

[编程题]获取指定字符串
  • 热度指数:43839 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定字符串 str,检查其是否包含 连续3个数字
1、如果包含,返回最先出现的 3 个数字的字符串
2、如果不包含,返回 false

输入描述:
'9876543'


输出描述:
987
示例1

输入

'9876543'

输出

987
function captureThreeNumbers(str) {
    const exg = /\d{3}/g;
    const matchRes = str.match(exg);
    return matchRes && matchRes.length > 0 ? matchRes[0] : false
}
发表于 2021-05-08 21:50:10 回复(0)
function captureThreeNumbers(str) {
   let count = 0;
    let btr =''
 for(let i of str){
    if(Number(i)){
       count++;
        btr = btr+i;
       if(count>=3) break
    }
    else{
       count =0;
       btr = ''
    }
 }
     return count>=3?btr:false

}
发表于 2021-04-24 20:21:44 回复(0)
function captureThreeNumbers(str) {
    return /\d\d\d/.test(str)?/\d\d\d/.exec(str)[0]:false
}

正则表达是 :\d{3}   exec获取或者match
发表于 2021-04-01 15:29:35 回复(0)
function captureThreeNumbers(str) {
    let arr=str.split('');
    for(let i=0;i<arr.length-2;i++){
        if(!isNaN(arr[i])&&!isNaN(arr[i+1])&&!isNaN(arr[i+2])){
                return str.substr(i,3);
            }
        }
    return false
}

------------------------------------------------------------------------------------------------
function captureThreeNumbers(str) {
    let arr=str.split('');
    for(let i=0;i<arr.length-2;i++){
        if(!isNaN(arr[i])&&!isNaN(arr[i+1])&&!isNaN(arr[i+2])){
                return arr.slice(i,i+3).join('');
            }
        }
    return false
}

编辑于 2021-01-18 20:22:31 回复(0)
function captureThreeNumbers(str) {
      if(str.length<3){
        return false;
    }
    var arr=str.split("");
    var result;
    for(var i=0;i<arr.length-2;i++){
        if(isNaN(arr[i])||isNaN(arr[i+1])||isNaN(arr[i+2])){break;}
        if((arr[i+1]==arr[i]+1&&arr[i+2]==arr[i]+2)||(arr[i+1]==arr[i]-1&&arr[i+2]==arr[i]-2)){
            result=arr[i]+arr[i+1]+arr[i+2];
            return result;
        }
    }
    return false;
}

75%,不知道哪有问题
发表于 2020-09-03 21:53:42 回复(0)
function captureThreeNumbers(str) {
   return str.match(/\d{3}/)||false;
    
}


发表于 2020-01-09 11:44:21 回复(0)
function captureThreeNumbers(str) {
    let gao_strArr = str.split('').map(x => parseInt(x));
    console.log(gao_strArr);
    for(let i = 0 ; i <= str.length - 3; i++) {
        if(gao_strArr[i] + gao_strArr[i + 2] === 2 * gao_strArr[i + 1]){
            return '' + gao_strArr[i] + gao_strArr[i+1] + gao_strArr[i+2];
        }
    }
    return false;
}

关于获取指定字符串的总结:https://github.com/ataola/ataolaSkillsStack/blob/master/tiku/tijie/45.md
发表于 2019-11-20 16:06:29 回复(0)
function captureThreeNumbers(str) { 
    const reg = /(\d{3})/; 
    const val = str.match(reg); 
    return val === null ? false : val[0];
}

match的用法
编辑于 2019-09-14 21:59:06 回复(0)
function captureThreeNumbers(str) {
    var arr = str.match(/\d{3}/);
    if(arr) {
        return arr[0];
    } 
    return false;
}

发表于 2019-09-07 21:18:10 回复(0)
function captureThreeNumbers(str) {
    var re1=/([\d]){3}/;
    var index=str.search(re1);
    if(index!=-1){
        return str.slice(index,index+3);
    }
    else{
        return false;
    }
}
发表于 2019-08-07 09:34:56 回复(0)
function captureThreeNumbers(str) {
    var pattern = /\d{3}/g.exec(str)
    return pattern?pattern[0]:false;
}
题目中写最新出现,我以为是最后出现的意思,浪费了半天时间还写了个循环,应该改成最先出现吧
发表于 2019-05-26 22:06:42 回复(0)
function captureThreeNumbers(str) {
    if(/\d{3}/.test(str)){
        return str.match(/\d{3}/)[0];
    }else{
        return false;
    }
}
//先判断有没有,再返回值

发表于 2018-10-18 17:27:37 回复(0)
// 3个连续的数字解法,不知道是否有更简单的逻辑
function captureThreeNumbers(str) {
    let temp = ''
    let arr = str.split('')
    for(let i = 0; i < arr.length; i++){
        if(Math.abs(+arr[i] - +arr[i+1]) === 1){
            if(temp[1]){
                if(Math.abs(+temp[0] - +arr[i]) === 2) return temp += arr[i]
                temp = ''
            }else temp += arr[i]            

        }else temp = ''
    }
    return false
}
发表于 2018-07-08 04:34:42 回复(0)
function captureThreeNumbers(str) {
    var num=/\d{3}/;
    var arr=num.exec(str);
    if(arr!=undefined){
        return arr[0];
    }
    return false;
}
发表于 2017-08-27 16:29:37 回复(0)
function captureThreeNumbers(str) {
    arr=str.match(/\d{3}/);
    if(arr[0])
        return arr[0];
    else
        return false;
    

}
为什么错了 arr[0]应该也可以啊
发表于 2017-07-18 16:34:58 回复(1)
function captureThreeNumbers(str) {
        result = str.match(/\d{3}/);
    //match方法返回一个对象,格式为["987", index: 0, input: "9876543"]
        return result ? result[0] :false;
    }
发表于 2017-06-26 14:29:01 回复(0)
//谁能告诉我为啥上面写的这个行,下面写的这个就不行?逻辑上一样啊
function captureThreeNumbers(str) {
    return str.match(/\d{3}/)?str.match(/\d{3}/)[0] : false;
    
}
//下面这个case通过率50%,我很纳闷什么数据会通不过
function captureThreeNumbers(str) {
    return str.match(/\d{3}/)[0] || false;
    
}
发表于 2016-08-24 22:18:11 回复(2)