मान लीजिए, हमारे पास इस तरह के शब्दों की एक अल्पविराम से अलग की गई स्ट्रिंग है -
const str = 'JAY, ROB';
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो एक ऐसी स्ट्रिंग लेता है। फ़ंक्शन स्ट्रिंग में शब्दों से एक नया शब्द बना सकता है जहां पूर्ववर्ती वर्णमाला हमेशा अगले के बराबर से अधिक होती है (उदाहरण के लिए ए, बी से बड़ा है)
उदाहरण के लिए, उपरोक्त स्ट्रिंग में हम JAY के पहले अक्षर की तुलना ROB के पहले अक्षर से करना चाहते हैं।
चूँकि R के साथ तुलना करने पर J पहले आता है, नए शब्द का पहला अक्षर J होगा। दूसरे की तुलना में, A, R से पहले आता है, यह दूसरा अक्षर बन जाता है, तीसरा अक्षर इसी तरह R बन जाता है।
इसलिए, अंतिम शब्द 'जारोबी' होगा,
ध्यान दें, इस उदाहरण के लिए, हमने केवल दो शब्दों के साथ एक स्ट्रिंग ली, लेकिन हमें एक ऐसा समाधान लिखना होगा जो दो से अधिक शब्दों के साथ भी काम कर सके।
उदाहरण
इसके लिए कोड होगा -
const str = `JAY,ROB,APPLE,AAKO`; const specialSort = (str = '') => { let len = str.replace(/,/g, "").length; const sorter = (str, b) => { if(str === "" || str === null) return 1; if(b === "" || b === null) return −1; if(str === b) return 0; return str < b ? −1 : 1; }; let res = ""; let sorted = str.split(",").sort(sorter); while (res.length < len){ res += sorted[0][0]; sorted[0] = sorted[0].slice(1); sorted = sorted.sort(sorter); } return res; }; console.log(specialSort(str));
आउटपुट
और कंसोल में आउटपुट होगा -
AAAJAKOPPLEROBY