HJ92 在字符串中找出连续最长的数字串
描述
输入一个字符串,返回其最长的数字子串,以及其长度。若有多个最长的数字子串,则将它们全部输出(按原字符串的相对位置)
本题含有多组样例输入。
输入描述:
输入一个字符串。
输出描述:
输出字符串中最长的数字字符串和它的长度,中间用逗号间隔。如果有相同长度的串,则要一块儿输出(中间不要输出空格)。
示例1
输入:
abcd12345ed125ss123058789 a8a72a6a5yy98y65ee1r2
输出:
123058789,9 729865,2
function fn(str){ let dp = new Array(str.length+1)//dp数组代表第i个字符为数字结尾的最长数字串长度 dp[0] = 0; for(let i=1;i<=str.length;i++){ if(/\d/.test(str[i-1])){ dp[i] = dp[i-1]+1; }else{ dp[i] = 0; } } let max = Math.max.apply(null, dp); let res = '' for(let i=1;i<dp.length;i++){ if(dp[i] === max){ res+=str.substr(i-dp[i], dp[i]) } } console.log(res+','+max) } let line; while(line=readline()) fn(line);

浙公网安备 33010602011771号