Computer >> Máy Tính >  >> Lập trình >> Javascript

Xác định chuỗi số đẹp trong JavaScript

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