确定JavaScript中的美丽数字字符串
如果可以将数字字符串str拆分为两个或更多个正整数的序列arr,并且满足以下条件,则该字符串称为漂亮字符串:
arr[i]-arr[i-1]=1,对于序列索引中的任何i,即序列中的每个元素都大于前一个元素。
序列中的任何元素都不应包含前导零。例如,我们可以将“50607”拆分为序列[5,06,07],但它并不优美,因为06和07具有前导零。
序列的内容不能重新排列。
例如-
如果输入字符串是-
const str = '91011';
那么输出应该是-
const output = true;
因为所需的顺序是[9,10,11];
示例
为此的代码将是-
const str = '91011'; const isBeautiful = (str) => { let i = 1; let count=0; const { length } = str; while(i <= length / 2){ let check = true; let j = i; let left = BigInt(str.substring(0,j)); let nextRange = (left + 1n).toString().length; while(j + nextRange <= length){ let right=BigInt(str.substring(j,j+nextRange)); if(left === right-1n){ left=right; j+=nextRange; nextRange=(left+1n).toString().length; count=j; }else{ check=false; break; } }; if(check === true && count === length){ return true; } i++; }; return false; }; console.log(isBeautiful(str));输出结果
控制台中的输出将是-
true