首页 > 试题广场 >

字符串中找出连续最长的数字串

[编程题]字符串中找出连续最长的数字串
  • 热度指数:42652 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
读入一个字符串str,输出字符串str中的连续最长的数字串

输入描述:
个测试输入包含1个测试用例,一个字符串str,长度不超过255。


输出描述:
在一行内输出str中里连续最长的数字串。
示例1

输入

abcd12345ed125ss123456789

输出

123456789
JS版本,使用正则表达式:
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void async function () {
    // Write your code here
    while(line = await readline()){
        const str = line.match(/[0-9]+/g);
        str.sort((a,b)=>a.length-b.length)
        console.log(str.pop())
    }
}()


发表于 2024-07-09 15:27:33 回复(2)
js也不费劲吧
while(str=readline()){
    console.log(getMaxSerials(str))
}
function getMaxSerials(str){
    let arr=str.replace(/[a-z ]/g,"a").split("a").filter((e)=>{
        return e
    })
    arr.sort((a,b)=>b.length-a.length)
    return arr.length?arr[0]:""
}

发表于 2022-06-06 14:37:08 回复(0)
            var num = /\d+/g;
            var zimu = /[A-Za-z]+/g;
            var str = "abcd12345ed125ss123";
            var arr_num = str.match(num);
            var arr_zimu = str.match(zimu);
            var str_sum;
            var sum = 0;
            for(var i = 0; i < arr_num.length; i++) {
                if(arr_num[i].length > sum){
                    
                    sum = arr_num[i].length;
                    str_sum = arr_num[i];
                }
            }
            for(var j = 0; j < arr_zimu.length; j++) {
                if(arr_zimu[j].length > sum){
                    
                    sum = arr_zimu[j].length;
                    str_sum = arr_zimu[j];
                } 
            }
            console.log(str_sum) ;
牛客网的系统有问题?两个测试用例一直换?还是我使用方法不对
abcd12345ed125ss123456789
abcd12345ed125ss123


发表于 2018-01-16 10:13:31 回复(0)
var lines = readline()

function findTheNumString(str) {
    var reg = /\d+/g     var array = lines.match(reg)
    var max = 0
    for (var i = 0; i < array.length; i++) {
        if (array[i].length >= max) {
            max = array[i].length
            var j = i
        }
    }
    return array[j]
}
console.log(findTheNumString(lines))

发表于 2017-10-30 23:27:20 回复(1)
我就想知道JavaScript代码你们怎么做到读取输入的测试数据的。
function dec(a,b){
    return a-b;
}
function printknums(str){
     var arrnums=str.split(" ");
     var len=arrnums.length;
     var k=parseInt(arrnums[len-1]);
     for(var i=0;i<len;i++){
     	arrnums[i]=parseInt(arrnums[i]);
     }
     arrnums.sort(dec);
     arrnums.filter(function(item,index){
     	if(index<k){
     		console.log(item);
     	}
     });
 }
printknums('3 9 6 8 -10 7 -11 19 30 12 23 5');

发表于 2017-03-21 18:18:06 回复(2)