سؤال مقابلة الخوارزمية: كيفية عكس عدد صحيح باستخدام JavaScript

أحد أسئلة المقابلة الشائعة التي يتلقاها العديد من المتقدمين لهندسة البرمجيات هو سؤال العدد العكسي ، والذي ينص على: "بالنظر إلى عدد صحيح ، قم بإرجاع عدد صحيح يمثل الترتيب العكسي للأرقام". يبدو هذا بسيطًا بما فيه الكفاية ، ولكن العديد من المبرمجين المبتدئين غالبًا ما يجاهدون للتوصل إلى حل كامل. ستدخل هذه المدونة في مراجعة متعمقة وتفصيل للإجابة على هذه المشكلة.

أولاً ، سأقدم الإجابة ، وبعد ذلك سأقوم بتفصيل كل جانب من جوانب الإجابة وشرحها.

الدالة عكسInt (ن) {
كون معكوس = parseInt (n.toString (). split (''). reverse (). join (''))
إرجاع Math.sign (n) * عكسي
}}

دعونا نفحص هذا أكثر.

الخطوة 1) أولاً ، نقوم بإنشاء دالة تسمى عكسInt تأخذ في وسيطة رقم (ن). على الرغم من عدم وجود طريقة مضمنة لعكس رقم في JS ، فإننا نعلم أنه يمكن استدعاء .reverse () لعكس محتويات المصفوفة. ولكن كيف يمكن تحويل عدد صحيح إلى صفيف؟ هذه عملية من خطوتين. لنبدأ بالرقم 531. لنقم بإنشاء متغير يسمى عكس.

الخطوة 2) لبدء هذا نحتاج إلى تحويل العدد الصحيح إلى سلسلة ، لذلك نبدأ بـ n.toString () الذي يحقق ذلك فقط. 531 سيصبح "531" إذا اتصلنا بالرقم 531. toString () عليه.

الخطوة 3) واحد لدينا عدد صحيح كسلسلة ، يمكننا استدعاء .split ('') على السلسلة. إذا لم تكن على دراية بوظيفة .split في JavaScript ، فراجع هذا الرابط. سبليت لديه فاصل وخيار الحد. إذا تم استخدام سلسلة فارغة ("") كفاصل ، يتم تقسيم السلسلة بين كل حرف. تقوم بإرجاع صفيف مع العناصر التي تم "تقسيم". الآن لدينا صفيف حيث يمثل كل عنصر كل رقم من رقم البداية. "531" الآن [5 ، 3 ، 1]

الخطوة 4) الآن بعد أن أصبح لدينا العدد الصحيح كمصفوفة ، يمكننا استدعاء .reverse () على المصفوفة ، والتي ستعكسها. إذا كان الصفيف [5 ، 3 ، 1] فسيكون الآن [1 ، 3 ، 5]. الآن بعد أن قمنا بعكسها في شكل صفيف ، فإن خطوتنا التالية هي تحويلها مرة أخرى إلى سلسلة.

الخطوة 5) من أجل تحويل مصفوفة إلى سلسلة ، سنحتاج إلى استدعاء طريقة .join () على الصفيف مع معلمات سلسلة فارغة (""). سيأخذ هذا صفيفنا ، على سبيل المثال [1 ، 3 ، 5] ويحوله إلى سلسلة من "135".

الخطوة 6) نحن قريبون جدًا الآن! لقد قمنا بعكس السلسلة لدينا ، وعلينا الآن تحويل السلسلة مرة أخرى إلى عدد صحيح. الطريقة التي نقوم بها عن طريق تمريرها إلى parseInt (). بمجرد استدعاء parseInt على السلسلة "135" ، تكون النتيجة هي الرقم 135.

الخطوة 7) هذه خطوة أساسية حيث أن الأعداد الصحيحة يمكن أن تكون إيجابية أو سلبية! Math.sign للإنقاذ! تأخذ Math.sign () عددًا صحيحًا ، واستنادًا إلى علامة ذلك ، تُرجع إما 1 أو -1. إذا قمنا بتمرير n كوسيطة Math.sign ، فسوف يعطينا 1 إذا كان رقمًا موجبًا أو -1 إذا كان رقمًا سالبًا ، لذلك كل ما نحتاجه هو ضرب نتيجة Math.sign (n) بواسطة العدد المتغير العكسي الذي استلمناه للحصول على إجابتنا!

إليكم الأمر ، شرح متعمق لطريقة بسيطة وفعالة لحل مشكلة الأعداد الصحيحة العكسية. الترميز سعيدة!