Chuỗi số, str, được gọi là chuỗi đẹp nếu nó có thể được tách thành chuỗi arr gồm hai hoặc nhiều số nguyên dương, thỏa mãn các điều kiện sau -
-
arr [i] - arr [i - 1] =1, với bất kỳ i nào trong chỉ mục của chuỗi, tức là mỗi phần tử trong chuỗi nhiều hơn phần tử trước đó.
-
Không phần tử nào của dãy phải chứa số 0 đứng đầu. Ví dụ, chúng ta có thể tách '50607' thành dãy [5, 06, 07], nhưng nó không đẹp vì 06 và 07 có các số 0 ở đầu.
-
Không thể sắp xếp lại nội dung của trình tự.
Ví dụ -
Nếu chuỗi đầu vào là -
const str = '91011';
Sau đó, đầu ra phải là -
const output = true;
vì trình tự mong muốn là [9, 10, 11];
Ví dụ
Mã cho điều này sẽ là -
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)); Đầu ra
Và đầu ra trong bảng điều khiển sẽ là -
true