एक संख्यात्मक स्ट्रिंग, str, को एक सुंदर स्ट्रिंग कहा जाता है यदि इसे दो या अधिक धनात्मक पूर्णांकों के अनुक्रम arr में विभाजित किया जा सकता है, जो निम्नलिखित शर्तों को पूरा करते हैं:
arr[i] - arr[i - 1] = 1, अनुक्रम के सूचकांक में किसी भी i के लिए, यानी अनुक्रम में प्रत्येक तत्व पिछले तत्व से 1 अधिक है।- अनुक्रम का कोई तत्व अग्रणी शून्य नहीं होना चाहिए। उदाहरण के लिए, हम '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