আমার সাথে

Personal Blog of Zonayed
কম্পিউটার সাইন্স জাভাস্ক্রিপ্ট প্রোগ্রামিং বাংলা

জাভাস্ক্রিপ্ট অ্যালগরিদম ও ডাটা স্ট্রাকচারঃ স্ট্রিং উল্টানো

সেপ্টেম্বর 22, 2018

সমস্যাঃ আমরা একটা ফাংশনে একটা স্ট্রিং আর্গুমেন্ট হিসেবে দিবো। সেটা আমাদেরকে স্ট্রিং টা সম্পূর্ণ উল্টো করে রিটার্ণ করবে। যেমনঃ

stringReverese('Hello World!');
// Should Return: !dlroW olleH

সমস্যা বিশ্লেষণ ও সম্ভাব্য সমাধানের রাস্তাঃ আমরা এখানে অ্যারে হলে অনেক সহজেই উল্টিয়ে ফেলতে পারতাম। কারণ অ্যারের রিভার্স reverse() মেথড আছে। এখন আমরা চাইলে এখানে আমাদের স্ট্রিংটাকেই ভাগ split করে অ্যারেতে নিয়ে যেতে পারি। তারপর অ্যারে থেকে অ্যারের রিভার্স মেথড দিয়ে উল্টিয়ে আবার অ্যারেটাকে অ্যারেরই join() মেথড দিয়ে আবার স্ট্রিং এ নিয়ে আসতে পারি।

অ্যালগরিদমঃ

স্টেপ ১ঃ শুরু

স্টেপ ২ঃ স্ট্রিং টাকে অ্যারেতে নিয়ে যাওয়া

স্টেপ ৩ঃ অ্যারেটাকে অ্যারের রিভার্স মেথড দিয়ে উল্টিয়ে ফেলা

স্টেপ ৪ঃ এবার উল্টানো অ্যারেটাকে অ্যারেরই আরেকটা মেথড দিয়ে জয়েন করে পুনরায় স্ট্রিং এ রূপান্তর করা।

স্টেপ ৫ঃ এবার সেই স্ট্রিং টাকে রিটার্ন করা।

স্টেপ ৬ঃ শেষ!

কোডঃ

function stringReverese(str) {
   return str.split('').reverse().join('');
}

টেস্টঃ

stringReverese('Hello World!');
stringReverese('Zonayed Ahmed');
stringReverese('ABCDabcd1234!');

আরেকটা সম্ভাব্য সমাধানের রাস্তাঃ আমরা এখানে আরেকটা সমাধানের চেষ্টা করতে পারি লুপ ব্যবহার করে। একটা খালি স্ট্রিং নিয়ে আমাদের কাঙ্খিত স্ট্রিং এর উপর লুপ চালিয়ে প্রতিটা ক্যারেক্টার সেই স্ট্রিং এর প্রথমে বসিয়ে দিতে হবে। তাহলে এই হিসেবে একদম প্রথম ক্যারেক্টারটা সবার শেষে চলে যাবে, আর একদম শেষেরটা সবার প্রথমে বসবে। ব্যাস, হয়ে গেলো আমাদের স্ট্রিং উল্টানো।

অ্যালগরিদমঃ

স্টেপ ১ঃ শুরু

স্টেপ ২ঃ একটা খালি ভ্যারিয়েবল reversed নেওয়া

স্টেপ ৩ঃ এবার স্ট্রিং টার উপরে প্রতিটা ক্যারেক্টার char অ্যাক্সেস করতে লুপ চালানো

স্টেপ ৪ঃ এবার লুপের প্রতিটা ইটারেশনে প্রতি ক্যারেক্টার char এর জন্যে আমরা আমাদের reserved ভ্যারিয়েবলে প্রথমে ক্যারেক্টার char টা অ্যাড করবো এবং পরে reserved অ্যাড করবো এভাবেঃ reserved = char + reserved(এখানেই আসল ট্রিক)

স্টেপ ৫ঃ লুপ শেষে reserved রিটার্ন করা।

স্টেপ ৬ঃ শেষ!

কোডঃ

function stringReverese(str) {
   let reversed = '';
   for(let char of str) {
      reversed = char + reversed;
   }
   return reversed; 
}

টেস্টঃ

stringReverese('Hello World!');
stringReverese('Zonayed Ahmed');
stringReverese('ABCDabcd1234!');

আমার নতুন ব্লগ পোস্ট গুলোর আপডেট পেতে আপনি আপনার ইমেইল দিয়ে আমার ব্লগ পোস্টগুলো সাবস্ক্রাইব করে রাখতে পারেন, নতুন পোস্টগুলো সপ্তাহে একদিন আপনার ইনবক্সে চলে যাবে

Comments

comments