জাভাস্ক্রিপ্ট টিউটোরিয়াল-শিখুন গল্পে গল্পে সাথে 1100+ Exercise

  • জাভাস্ক্রিপ্ট পরিচিতি-Introduction to JavaScript
  • প্রোগ্রামিং শুরু করতে কতটুকু গণিত লাগে?
  • প্রোগ্রামিং শুরু করতে কতটুকু ইংরেজি জানা লাগে?
  • ভালো প্রোগ্রামার কিভাবে হবো? [+৭টি গুরুত্বপূর্ণ টিপস]
  • মিউট থাক immutable স্ট্রিং
  • Lower-Upper সমান সমান
  • কোপা Split শামসু
  • বারে বারে repeat করে যাই
  • মাথা উল্টা reverse স্ট্রিং

মাথা উল্টা reverse স্ট্রিং


গাড়ি বা মোটর সাইকেল সব সময় যে সামনের দিকে চলে, এইটা কিন্তু না। মাঝেমধ্যে খাদে পড়ে গেলে তোকে রিভার্স বা পিছনের দিকে নিতে হয়। ওই গর্ত বা চিপা থেকে পিছনের দিকে যেতে হয়। একইভাবে স্ট্রিংও মাঝেমধ্যে উল্টা দিকে নিতে হয় বা নেয়ার সিস্টেমটা কী, সেটা জানার দরকার পড়তে পারে।


রিভার্স মানে হচ্ছে, কোনো একটা word বা sentence-কে উল্টাই দে। মানে ধর, তোর নাম rakeb, এটাকে যদি রিভার্স করি, তাহলে দাঁড়াচ্ছে bekar বা stressed-কে উল্টালে মিষ্টি জাতীয় খাবার desserts হয়ে যায়, অথবা flow-কে রিভার্স করলে wolf হয় ইত্যাদি। 


  const sentence = ‘I am learning Web Dev’;


তো এটাকে আমরা reverse করতে চাচ্ছি। এটা আমরা কীভাবে করব? আমরা এটা জানি যে, এটা একটা string, এটাতে index থাকে, এটা অনেকটা array-এর মতো। আমরা এটা করার জন্য loop করতে পারি, যা আমরা কিছুটা শিখেছিলাম।


  const sentence = "I am learning Web Dev";
  for(const letter of sentence)
  {
  	console.log(letter);
  }


এই loopটা রান করলে কী হয়, সেটা আমরা অলরেডি জানি, তবু এটার আউটপুটটা দেখি।


Output:
I

a
m

l
e
a
r
n
i
n
g

W
e
b

D
e
v


Loop ভেরিয়েবলটা হচ্ছে letter এবং এই letter sentence ভেরিয়েবলে প্রতিটা লেটার আসতেছে, আর আমরা সেটাকে প্রিন্ট করতেছি। এটার মাধ্যমে আমরা sentence-এর প্রতিটা লেটারকে আলাদা আলাদা করে পেয়েছি। আর এটাকে কাজে লাগিয়ে আমরা একটু কষ্ট হলেও reverse করতে পারব। এটা করার জন্য প্রথমেই আমরা একটা empty string ডিক্লেয়ার করে নিব। string কেন ডিক্লেয়ার করব? কারণ, reverse করা string তো কোথাও store করে রাখতে হবে, তাই না? তাই এটার জন্য আমরা একটা string ডিক্লেয়ার করে নেব। তারপর লুপের ভিতরে একটা কিছু করবি। কী করবি, সেটা নিচে দেখ।


  const sentence = "I am learning Web Dev"  let reverse = "";
  for(const letter of sentence)
  {
  	reverse = letter + reverse;
  }


আরে আরে, আরে ভাই! এটা কী করলি? reverse = letter + reverse; কেন করলি এটা? letter ভেরিয়েবলে আমরা প্রতিটা ক্যারেক্টারকে আলাদা করে পাচ্ছি, এটা ঠিক তাই না?


এখন আমাদের স্ট্রিংয়ে Web এই ওয়ার্ডটাকে উদাহরণ হিসেবে চিন্তা করা যাক। আমরা কী করলাম? reverse নামের একটা empty string নিলাম এবং সেখানে প্রতিবার letter ভেরিয়েবলের মান তার পূর্ববর্তী reverse ভেরিয়েবলের মানের সাথে যোগ করে আবার সেটা reverse স্টোর করছে। জিনিসটা একটু ভেঙে দেখ।


1st loop → reverse = ‘’  
	   letter = ‘W’  
	   reverse = letter + ‘’  
	   reverse = W + ‘’


তারমানে প্রথমবার যখন loop চলে, তখন reverse ভেরিয়েবলের মধ্যে শুধু Web-এর W লেটারটা যোগ হয়। এখন reverse ভেরিয়েবলের মধ্যে শুধু W রয়েছে।

2nd loop → reverse = ‘W’  
	   letter = ‘e’  
	   reverse = letter + ‘W’  
	   reverse = ‘e’ + ‘W’


এখন letter ভেরিয়েবলের মধ্যে Web-এর e রয়েছে, যা পুরাতন reverse-এর আগে যোগ হয়ে eW আবার reverse স্টোর হচ্ছে।


Similarly,  

3rd loop → reverse = ‘eW’  
	    letter = ‘b’  
	    reverse = letter + reverse  
	    reverse = b + eW


এখন রিভার্সের মধ্যে Web ওয়ার্ডটা উল্টোভাবে store হয়েছে। এভাবে করে যদি পুরো sentence-এর জন্য loop চলে, তাহলেই আমাদের কাজ সম্পন্ন হয়ে যাবে।


  const sentence = 'I am learning Web Dev'  let reverse = '';
  for(const letter of sentence)
  {
  	reverse = letter + reverse;
  }
  console.log(reverse);

Output:  
veD beW gninrael ma I


এখন পুরোপুরি আমাদের sentenceটা রিভার্স হয়ে গেছে। রিভার্স করার একটা সিস্টেম তুই অলরেডি শিখে ফেলেছিস। 



Previous PageNext Chapter