অ্যালগরিদম সাক্ষাত্কার প্রশ্ন: জাভাস্ক্রিপ্ট ব্যবহার করে কোনও পূর্ণসংখ্যার বিপরীতে কীভাবে হয়

অনেক সফ্টওয়্যার ইঞ্জিনিয়ারিং আবেদনকারীরা প্রাপ্ত একটি সাধারণ সাক্ষাত্কার প্রশ্নটি হ'ল বিপরীত পূর্ণসংখ্যার প্রশ্ন, যা বলে: "একটি পূর্ণসংখ্যা দেওয়া হয়, এমন একটি পূর্ণসংখ্যা ফেরত দেয় যা সংখ্যার বিপরীত ক্রম হয়"। এটি যথেষ্ট সহজ বলে মনে হচ্ছে, তবে অনেক শিক্ষানবিশ প্রোগ্রামার প্রায়শই সম্পূর্ণ সমাধান নিয়ে আসতে লড়াই করে। এই ব্লগটি গভীরতর পর্যালোচনা এবং এই সমস্যার উত্তরটি বিচ্ছিন্ন করবে।

প্রথমে আমি উত্তরটি উপস্থাপন করতে যাচ্ছি, এবং তারপরে আমি ভেঙে উত্তরটির প্রতিটি দিক ব্যাখ্যা করব।

ফাংশন রিভার্সইন্ট (এন) {
কনট্রাস্ট বিপরীত = parseInt (n.toString ()। split ('')। বিপরীত ()। জয়েন (''))
রিটার্ন ম্যাথ.সাইন (এন) * বিপরীত
}

এর আরও পরীক্ষা করা যাক।

পদক্ষেপ 1) প্রথমে, আমরা রিভার্সআইন্ট নামে একটি ফাংশন তৈরি করি যা একটি সংখ্যার (এন) আর্গুমেন্ট গ্রহণ করে। জেএসে কোনও সংখ্যাকে বিপরীত করার কোনও অন্তর্নির্মিত উপায় না থাকলেও আমরা জানি যে .revers () কে অ্যারের সামগ্রীগুলি উল্টিয়ে ফেলার জন্য বলা যেতে পারে। তবে কীভাবে পূর্ণসংখ্যাকে অ্যারেতে পরিণত করা যায়? এটি একটি দুই ধাপ পদ্ধতি. আসুন 531 নম্বর দিয়ে শুরু করা যাক, বিপরীত নামে একটি ভেরিয়েবল তৈরি করি।

পদক্ষেপ 2) এটি শুরু করার জন্য আমাদের পূর্ণসংখ্যাকে একটি স্ট্রিংয়ে রূপান্তর করতে হবে, সুতরাং আমরা n.toString () দিয়ে শুরু করব যা এটি অর্জন করে। আমরা যদি এতে 531.toString () কল করি তবে 531 "531" হয়ে যাবে।

পদক্ষেপ 3) আমাদের একটি স্ট্রিং হিসাবে পূর্ণসংখ্যা রয়েছে, আমরা স্ট্রিংয়ে .split ('') কল করতে পারি। আপনি যদি জাভাস্ক্রিপ্টে .স্প্লিট ফাংশনটির সাথে পরিচিত না হন তবে এই লিঙ্কটি দেখুন। স্প্লিটের একটি বিভাজক এবং সীমা বিকল্প রয়েছে। যদি খালি স্ট্রিং ("") বিভাজক হিসাবে ব্যবহৃত হয় তবে স্ট্রিংটি প্রতিটি অক্ষরের মধ্যে বিভক্ত হয়। এটি "বিভক্ত" আইটেমগুলির সাথে একটি অ্যারের ফিরিয়ে দেয়। এখন আমাদের একটি অ্যারে রয়েছে যেখানে প্রতিটি উপাদান শুরুর সংখ্যার প্রতিটি অঙ্ক উপস্থাপন করে। "531" এখন [5, 3, 1]

পদক্ষেপ 4) এখন আমাদের কাছে অ্যারে হিসাবে পূর্ণসংখ্যা রয়েছে তাই আমরা অ্যারেটিতে .revers () কল করতে পারি যা এটি বিপরীত হবে। অ্যারেটি যদি [5, 3, 1] হয় তবে এটি এখন [1, 3, 5] হবে। এখন আমরা এটি অ্যারে আকারে বিপরীত করেছি, আমাদের পরবর্তী পদক্ষেপটি এটি আবার স্ট্রিংয়ে পরিণত করা into

পদক্ষেপ 5) একটি অ্যারেটিকে স্ট্রিংয়ে রূপান্তর করতে, আমাদের শূন্য স্ট্রিং ("") এর পরামিতিগুলির সাথে অ্যারেতে .join () পদ্ধতিটি কল করতে হবে। এটি আমাদের অ্যারে গ্রহণ করবে, উদাহরণস্বরূপ [1, 3, 5] এবং এটিকে "135" এর স্ট্রিংয়ে পরিণত করবে।

পদক্ষেপ 6) আমরা এখন খুব কাছাকাছি! আমরা আমাদের স্ট্রিংটি বিপরীত করেছি, এখন আমাদের স্ট্রিংটিকে একটি পূর্ণসংখ্যায় পরিণত করতে হবে। আমরা যেভাবে করি তা হ'ল এটি পার্সিয়ান্ট () এ প্রবেশ করানো। একবার যখন আমরা "135" স্ট্রিংটিতে পার্সেন্টটি কল করি তখন আমাদের ফলাফলটি 135 নম্বর হয়।

পদক্ষেপ 7) পূর্ণসংখ্যাগুলি ইতিবাচক বা নেতিবাচক হতে পারে এটি এটি একটি প্রয়োজনীয় পদক্ষেপ! ম্যাথ.সাইন ইন রেসকিউ! ম্যাথ.সাইন () একটি পূর্ণসংখ্যা নেয় এবং এর চিহ্নের উপর ভিত্তি করে, হয় 1 বা a -1 প্রদান করে। আমরা যদি ম্যাথ.সাইনকে আর্গুমেন্ট হিসাবে এন পাস করি তবে এটি একটি ধনাত্মক সংখ্যা হলে এটি আমাদের 1 বা এটি একটি নেতিবাচক সংখ্যা হলে -1 দেবে, সুতরাং আমাদের যা করতে হবে তা হ'ল ম্যাথ.সাইন (এন) এর ফলাফলকে বহুগুণে বাড়িয়ে তুলতে হবে n বিপরীত পরিবর্তনশীল পূর্ণসংখ্যার দ্বারা আমরা আমাদের উত্তর পেতে পেলাম!

সেখানে আপনার এটি রয়েছে, বিপরীত পূর্ণসংখ্যার সমস্যার সমাধান করার জন্য একটি সহজ এবং কার্যকর পদ্ধতির গভীরতার ব্যাখ্যা। শুভ কোডিং!