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