কম্পিউটার

রুবি ইন্টারভিউ কোডিং চ্যালেঞ্জ এবং কিভাবে তাদের সমাধান করতে হয়

কোডিং চ্যালেঞ্জগুলি করা আপনার রুবি এবং সমস্যা সমাধানের দক্ষতা উন্নত করার একটি দুর্দান্ত উপায়। এবং কোডিং সাক্ষাত্কারের জন্য প্রস্তুতি নিতে !

কেন?

কারণ একটি চ্যালেঞ্জের সময় আপনি আপনার সমস্ত ফোকাস 1টি নির্দিষ্ট সমস্যা সমাধানের উপর রাখেন।

আপনাকে অন্য কিছু নিয়ে চিন্তা করতে হবে না।

এই ধরনের অনুশীলন আপনার চিন্তার দক্ষতাকে প্রসারিত করবে, আপনাকে আকর্ষণীয় ভাষা বৈশিষ্ট্যগুলি অন্বেষণ করতে অনুমতি দেবে। এবং একজন ভালো রুবি ডেভেলপার হয়ে উঠুন।

এই চ্যালেঞ্জগুলির মধ্যে কয়েকটির জন্য একটি কম্পিউটার অ্যালগরিদম, ডেটা স্ট্রাকচার বা ধারণা সম্পর্কে বিশেষ জ্ঞান প্রয়োজন, যেমন কিছু গণিতের কৌশল।

আপনি যদি এর বেশিরভাগ সমাধান করতে না পারেন তবে ঠিক আছে৷

চিন্তা করবেন না!

এখন :

আমি মনে করি এই চ্যালেঞ্জগুলি সমাধান করার প্রক্রিয়া সম্পর্কে অনুভূতি পেতে কয়েকটি সমাধান পড়া সহায়ক হতে পারে৷

দিয়ে শুরু…

চ্যালেঞ্জ 1:ডুপ্লিকেট খোঁজা

এই প্রথম চ্যালেঞ্জ হল Integer সহ একটি অ্যারে দেওয়া সমস্ত সদৃশ সংখ্যা খুঁজে পেতে আপনার প্রয়োজন মানগুলি৷

এখানে একটি উদাহরণ আছে :

numbers = [1,2,2,3,4,5]

find_duplicates(numbers)
# [2]

একটি প্রশ্ন দিয়ে শুরু করা যাক...

"একটি নির্দিষ্ট নম্বর সদৃশ হলে আমি কীভাবে জানতে পারি?"

আমি এক ধাপে সমাধান পাওয়ার চেষ্টা করছি না।

এই পর্যায়ে, আমি শুধু একটি প্রশ্ন জিজ্ঞাসা ও উত্তর দিতে চাই যা আমাকে সমাধানের কাছাকাছি নিয়ে যাবে।

কয়েকটি ধারণা লিখুন :

  • আমি গণনা করতে পারি যে অ্যারেতে আমাদের প্রতিটি সংখ্যার কতগুলি আছে, তারপর গণনা =2 মানে ডুপ্লিকেট৷
  • আমি প্রতিটি উপাদানের উপর যেতে পারি এবং "দেখা" উপাদানগুলির একটি তালিকা রাখতে পারি, যদি আমি একটি উপাদান দুবার দেখি তবে আমরা একটি সদৃশ পেয়েছি৷
  • আমি সংখ্যাগুলিকে একটি স্ট্রিংয়ে যুক্ত করতে পারি এবং একটি রেগুলার এক্সপ্রেশনের সাথে ডুপ্লিকেট করা সংখ্যাগুলিকে মেলানোর চেষ্টা করতে পারি৷

এই মুহুর্তে "কোনটি সেরা" তা বিবেচ্য নয়।

এটা নিয়ে চিন্তা করবেন না!

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

উদাহরণ :

seen = []

numbers.each_with_object([]) do |n, dups|
  dups << n if seen.include?(n)

  seen << n
end

# [2]

এটি সঠিক সমাধান বলে মনে হচ্ছে৷

এখন :

এটি সত্যিই কাজ করে তা নিশ্চিত করতে আপনি অন্যান্য ইনপুট (বিভিন্ন অ্যারে) চেষ্টা করতে চান, এটির জন্য ইউনিট পরীক্ষা লেখা দুর্দান্ত৷

যদি সমাধানটি 100% কাজ করে তাহলে আপনি অন্য সমাধানগুলি চেষ্টা করতে পারেন এবং যেটি বোঝা সহজ তা ব্যবহার করতে পারেন৷

পরিপূর্ণতার সন্ধান করবেন না।

প্রতিদিন শেখার, বোঝার এবং উন্নতি করার জন্য দেখুন!

চ্যালেঞ্জ 2:বৈধ শব্দগুলি

অক্ষর এবং একটি শব্দের একটি অ্যারে দেওয়া, এই অক্ষরগুলি থেকে শব্দটি তৈরি করা যায় কিনা তা খুঁজে বের করুন৷

উদাহরণ :

word = "orange"
characters = %w(e n g a r o)

valid_word?(characters, word)
# true

আবার আমরা আমাদের চিন্তা প্রক্রিয়া নির্দেশ করার জন্য একটি প্রশ্ন দিয়ে শুরু করি।

"আমরা কিভাবে নিশ্চিত করতে পারি যে এই অক্ষর দিয়ে শব্দটি তৈরি করা যেতে পারে?"

আইডিয়া নিয়ে আসুন।

বিক্ষিপ্ততা দূরে রাখুন এবং এটি সম্পর্কে চিন্তা করুন।

এটি কাগজে এটি করতে সাহায্য করতে পারে৷ .

আমার ধারণা:

  • word-এর প্রতিটি অক্ষরের জন্য , সেই অক্ষরটিকে characters থেকে সরিয়ে দিন অ্যারে, আপনি যদি সমস্ত অক্ষর সরাতে না পারেন তবে false ফেরত দিন
  • word-এ সমস্ত অক্ষর গণনা করুন &characters , তারপর গণনা বিয়োগ করুন

এখানে একটি সম্ভাব্য সমাধান আছে :

word
  .each_char
  .all? { |ch| characters.delete_at(characters.index(ch)) rescue nil }

আপনার সমাধান কি?

মন্তব্য বিভাগে শেয়ার করুন৷

সারাংশ

আপনি কোডিং চ্যালেঞ্জ এবং আপনার রুবি দক্ষতা উন্নত করতে কীভাবে সেগুলি ব্যবহার করবেন সে সম্পর্কে শিখেছেন!

মনে রাখবেন :

একটি নির্দিষ্ট চ্যালেঞ্জ সমাধান করতে সক্ষম না হওয়া পুরোপুরি ঠিক। এটিকে একজন ভিডিও গেম বসের মতো ভাবুন, বস যদি 100 লেভেলের হয় এবং আপনি 70 লেভেলে থাকেন তাহলে এই বসকে হারানো সত্যিই কঠিন হবে।

সেক্ষেত্রে আপনি কি করবেন?

আপনি লেভেল আপ যান এবং সহজ চ্যালেঞ্জের সাথে অভিজ্ঞতা পান (নিম্ন স্তরের কর্তারা), এবং আপনি ভাল গিয়ার পান (রুবি এবং প্রোগ্রামিং সম্পর্কে আরও শেখা)।

শুভ কামনা মজা কর! 🙂


  1. রুবিতে পরিবেশের ভেরিয়েবলগুলি কীভাবে ব্যবহার করবেন

  2. একটি ম্যাট্রিক্স কি এবং রুবিতে এটি কীভাবে ব্যবহার করবেন?

  3. রুবিতে স্ট্রাকট এবং ওপেনস্ট্রাক্ট কীভাবে ব্যবহার করবেন

  4. 4 দূরবর্তী অ্যাক্সেসের ঝুঁকি এবং কীভাবে সেগুলি সমাধান করা যায়