Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

JavaScript में प्रत्येक वर्ण को पड़ोसी वर्ण में बदलकर पालिंड्रोम बनाना

समस्या

एक स्ट्रिंग दी गई है, प्रत्येक वर्ण को वर्णमाला में उसके ठीक पहले या ठीक बाद के वर्ण में बदला जाना चाहिए ('a' केवल 'b' बन सकता है, 'z' केवल 'y')। निर्धारित करें कि क्या इन परिवर्तनों का कोई परिणाम पालिंड्रोम हो सकता है।

उदाहरण

const str = 'adfa'; 
const canFormPalindrome = (str = '') => { 
  const middle = str.length / 2; 
  for (let i = 0; i < middle; i++) { 
    const first = str[i].charCodeAt(); 
    const last = str[str.length - (i + 1)].charCodeAt(); 
    const distance = Math.abs(last - first); 
    if (distance > 2 || distance === 1) { 
      return false; 
    } 
  } 
  return true; 
}; 
console.log(canFormPalindrome(str)); // true

आउटपुट

true

व्याख्या

  • स्ट्रिंग के दोनों सिरों से केंद्र की ओर तुलना की जाती है।
  • प्रत्येक जोड़ी के लिए, उनके ASCII कोड का अंतर निकाला जाता है।
  • यदि अंतर 1 है, तो वे एक-दूसरे के पड़ोसी हैं लेकिन दोनों को एक ही दिशा में बदलने पर वे समान नहीं हो सकते।
  • यदि अंतर > 2 है, तो उन्हें पड़ोसी परिवर्तनों द्वारा समान नहीं बनाया जा सकता।
  • अन्यथा (अंतर 0 या 2), उन्हें समान बनाया जा सकता है।

यह एल्गोरिदम O(n) समय में चलता है और O(1) स्थान का उपयोग करता है।

  1. JavaScript Const: ब्लॉक-स्कोप्ड कॉन्स्टेंट्स JavaScript Const: ब्लॉक-स्कोप्ड कॉन्स्टेंट्स

    const ES2015 (ES6) में पेश किया गया एक ब्लॉक-स्कोप्ड वेरिएबल डिक्लेरेशन है जो रीअसाइनमेंट को रोकता है। यह आधुनिक JavaScript में डिफ़ॉल्ट विकल्प होना चाहिए जब रीअसाइनमेंट की आवश्यकता न हो। उदाहरण { try { a = 44; // TypeError: Assignment to constant variable } catch (e

  1. JavaScript में Const vs Let JavaScript में Const vs Let

    Const और let को ES2015 में ब्लॉक-स्कोप्ड वेरिएबल घोषित करने के लिए पेश किया गया था। जबकि let का उपयोग करके घोषित वेरिएबल को पुनः असाइन किया जा सकता है, const का उपयोग करके घोषित वेरिएबल को पुनः असाइन नहीं किया जा सकता। उदाहरण <!DOCTYPE html> <html lang="en"> <head> <me

  1. जावास्क्रिप्ट में प्रत्येक ऑब्जेक्ट के लिए यूनिक ID कैसे बनाएं? जावास्क्रिप्ट में प्रत्येक ऑब्जेक्ट के लिए यूनिक ID कैसे बनाएं?

    प्रत्येक ऑब्जेक्ट के लिए यूनिक ID बनाने के लिए निम्नलिखित कोड है: उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Docum