Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

การกำหนดสตริงตัวเลขที่สวยงามใน 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