কেহ কোন ভাল FizzBuzz টাইপ প্রশ্ন যে আছে FizzBuzz সমস্যা?
আমি কারও সাথে সাক্ষাত্কার করছি এবং এফবি তুলনামূলকভাবে সুপরিচিত এবং এটি মুখস্ত করা খুব কঠিন নয়, তাই ধারণাগুলির সন্ধানে আমার প্রথম স্টপ আমার নতুন আসক্তি এসও।
কেহ কোন ভাল FizzBuzz টাইপ প্রশ্ন যে আছে FizzBuzz সমস্যা?
আমি কারও সাথে সাক্ষাত্কার করছি এবং এফবি তুলনামূলকভাবে সুপরিচিত এবং এটি মুখস্ত করা খুব কঠিন নয়, তাই ধারণাগুলির সন্ধানে আমার প্রথম স্টপ আমার নতুন আসক্তি এসও।
উত্তর:
আমি তুলনামূলকভাবে সহজ প্রোগ্রামিং সমস্যার একটি ছোট তালিকা দেখেছি প্রার্থীদের আগাছা করার জন্য, যেমন FizzBuzz এর মতো। ক্রমবর্ধমান অসুবিধার জন্য আমি যে কয়েকটি সমস্যা দেখেছি তা এখানে:
এগুলি জাভার জন্য ছিল এবং আপনি স্ট্যান্ডার্ড লাইব্রেরি ব্যবহার করতে পারেন যাতে তাদের মধ্যে কয়েকটি অত্যন্ত সহজ হতে পারে (6 টির মতো)। তবে তারা ফিজবুজের মতো কাজ করে। আপনার যদি প্রোগ্রামিং সম্পর্কে কোনও ধারণা থাকে তবে আপনি খুব দ্রুত করতে সক্ষম হবেন। এমনকি আপনি যদি ভাষাটি ভালভাবে না জানেন তবে কমপক্ষে কীভাবে কিছু করা যায় তার পিছনে আপনার ধারণা দেওয়া উচিত।
এই পরীক্ষাটি ব্যবহার করে আমার পূর্ববর্তী একজন মনিব এমন লোকের কাছ থেকে সবকিছু দেখেছিলেন যারা এগুলিকে দ্রুত তাত্ক্ষণিকভাবে কার্যকর করেছে, এমন লোকদের কাছে যারা সবচেয়ে সুন্দর দ্রুত করতে পারে এমন লোকের কাছে, যারা আধা ঘন্টা পরে কোনও একককে উত্তর দিতে পারেনি।
আমার এও লক্ষ্য করা উচিত: লোকদের এই কাজগুলি দেওয়ার সময় তিনি তাঁর কম্পিউটারটি ব্যবহার করতে দিয়েছিলেন। তাদের বিশেষভাবে নির্দেশ দেওয়া হয়েছিল যে তারা গুগল এবং এর মতো ব্যবহার করতে পারে ।
সম্ভবত এটি আপনার প্রশ্নের সরাসরি উত্তর দেয় না, তবে আমি নিশ্চিত নই যে আপনার আর একটি সমস্যা নিয়ে আসা উচিত। "স্মরণে রাখা সহজ" হওয়া ছাড়াও, ফিজবজ প্রশ্নটি কেবল "সহজ" সহজ এবং এটি মূল বিষয়। আপনি যে ব্যক্তির সাথে সাক্ষাত্কার দিচ্ছেন তিনি যদি সেই লোকদের ক্লাসে থাকেন যার কাছে ফিজবজ "সুপরিচিত", তবে তারা লোকদের ক্লাসে থাকে যে কোনও ফিজবজ-টাইপ প্রশ্ন ফিল্টার না করে। এর অর্থ এই নয় যে আপনি তাদেরকে ঘটনাস্থলে নিযুক্ত করেছেন, তবে এর অর্থ এই নয় যে তারা এটির মাধ্যমে বাতাস বইতে এবং সাক্ষাত্কারের মাংসে যেতে সক্ষম হবেন।
এটি অন্যভাবে বলতে গেলে, কোডিং হরর পড়তে যে কেউ সময় নেয় সে আরও সাক্ষাত্কারের জন্য মূল্যবান। কেবলমাত্র তাদের সমাধানটি সত্যিই দ্রুত লিখতে দিন, এটি সংক্ষেপে আলোচনা করুন (উদাহরণস্বরূপ, আপনি এটি কীভাবে পরীক্ষা করেন?) এবং তারপরে পরবর্তী প্রশ্নের দিকে এগিয়ে যান। আর যেমনটি নিবন্ধটি বলেছে, "প্রকৃতই অবাক করা বিষয় যে কতজন পরীক্ষার্থী সহজতম প্রোগ্রামিংয়ের কাজে অসমর্থ।"
প্রজেক্ট অলারের প্রথম দিকের যে কোনওটি সম্ভবত ভাল হবে।
উদাহরণ স্বরূপ:
সমস্যা 25
ফিবোনাচি ক্রম পুনরাবৃত্ত সম্পর্কের দ্বারা সংজ্ঞায়িত করা হয়:
Fn = Fn−1 + Fn−2, where F1 = 1 and F2 = 1.
সুতরাং প্রথম 12 টি শর্তাদি হবে:
F1 = 1 F2 = 1 F3 = 2 F4 = 3 F5 = 5 F6 = 8 F7 = 13 F8 = 21 F9 = 34 F10 = 55 F11 = 89 F12 = 144
দ্বাদশ পদ, এফ 12, প্রথম সংখ্যা যা তিনটি সংখ্যা ধারণ করে।
ফিওোনাকির সিক্যুয়েনে প্রথম অঙ্কের সূচকটি কী কী 1000 টি সংখ্যা রয়েছে?
আমি একটি স্ট্রিং পরীক্ষা করে দেখতে পেয়েছি যদি এটি একটি প্যালিনড্রোম হয় তবে খুব সহজ এটি একটি শালীন উইডার হতে পারে।
scalar(reverse 'foo') == 'foo'
।
আমি একটি ফিজবুজ প্রশ্ন চেয়েছিলাম যাতে মডুলো অপারেটর জড়িত না। বিশেষত যেহেতু আমি সাধারণত ওয়েব বিকাশকারীদের জন্য সাক্ষাত্কার দিচ্ছি যাদের জন্য মডুলো অপারেটর কেবল প্রায়শই আসে না। এবং যদি এটি নিয়মিতভাবে চালিত করার জিনিস না হয় তবে এটি আপনার প্রয়োজন কয়েকবার সন্ধান করবে।
(মঞ্জুর, এটি এমন একটি ধারণা যা আদর্শভাবে, আপনি যে কোনও জায়গায় গণিতের কোর্সে মুখোমুখি হওয়া উচিত ছিল, তবে এটি একটি ভিন্ন বিষয়))
সুতরাং, আমি যা নিয়ে এসেছি তা হ'ল আমি কল্পনা করি না , কল্পনাও করি না, থ্রিস ইন রিভার্স । নির্দেশনাটি হ'ল:
বিপরীত ক্রমে , 1 এবং 200 এর মধ্যে 3 এর প্রতিটি গুণিত প্রিন্ট করে এমন একটি প্রোগ্রাম লিখুন ।
এটি স্বাভাবিক ক্রমে এটি করা সহজ: লুপ সূচকটি 3 দিয়ে গুণ করুন যতক্ষণ না আপনি 200 এর বেশি সংখ্যায় পৌঁছান, তারপরে প্রস্থান করুন। কতগুলি পুনরাবৃত্তির পরে শেষ করতে হবে তা নিয়ে আপনাকে চিন্তা করার দরকার নেই, আপনি যতটা না উচ্চ মানের প্রথম মানটি পৌঁছাবেন ততক্ষণ আপনি চালিয়ে যান।
কিন্তু পিছনে যেতে, আপনি কোথায় শুরু করতে হবে তা জানতে হবে। কিছু লোক স্বজ্ঞাতভাবে বুঝতে পারে যে 198 (3 * 66) 3 এর মধ্যে সর্বোচ্চ একাধিক এবং লুপের মধ্যে হার্ড-কোড 66। অন্যরা সেই সংখ্যাটি বের করার জন্য গাণিতিক ক্রিয়াকলাপ (পূর্ণসংখ্যা বিভাগ বা ফ্লোর পয়েন্ট বিভাগ 200 এবং 3) ব্যবহার করতে পারে এবং এর ফলে আরও সাধারণভাবে প্রযোজ্য কিছু সরবরাহ করতে পারে।
মূলত, এটি একই ধরণের সমস্যা হ'ল ফিজবজ (মানগুলি লুপিং এবং এগুলি মুদ্রণ করে একটি মোচড় দিয়ে)। এটি হ'ল এমন একটি সমস্যা যা মডিউল অপারেশন হিসাবে গুপ্ত কিছু (তুলনামূলক) তেমন ব্যবহার করে না solve
print [x for x in xrange(3, 200, 3)][::-1]
সত্যিই অত্যন্ত-সহজ যে 10 সেকেন্ডের মধ্যে সম্পন্ন করা যাবে, কিন্তু সেইসব মানুষ ছাড়া যারা আক্ষরিক প্রোগ্রাম করতে পারবেন না মুছে ফেলা হবে জন্য কিছু , এই এক চেষ্টা করুন:
জিজ্ঞাসা করুন: আমাকে কীভাবে দেখান (কাগজে, তবে একটি হোয়াইটবোর্ডে আরও ভাল) আপনি কীভাবে দুটি ভেরিয়েবলের মান পরিবর্তন করবেন।
এটি আমার ধারণা ছিল না, তবে জিজব নামের একজনের দ্বারা একটি ব্লগ পোস্টে মূল ফিজবজ প্রশ্ন সম্পর্কে সমস্ত মন্তব্য করেছিলেন।
জ্যাকব আরও বলে:
যদি তারা তৃতীয় ভেরিয়েবল তৈরি করে শুরু না করে তবে আপনি সেই ব্যক্তিকে প্রায় লিখতে পারেন। আমি খুঁজে পেয়েছি যে আমি একা এই প্রশ্নটি দিয়ে আমার (তত্ক্ষণাত অনস্ক্রিনযুক্ত) আবেদনকারীদের তৃতীয় থেকে অর্ধেক কাটাতে পারি।
তৃতীয় ভেরিয়েবল (যুক্ত / বিয়োগ, যোগ ইত্যাদি) প্রয়োজন ছাড়াই এই ভেরিয়েবল অদলবদল করার পদ্ধতি সম্পর্কে মূল ব্লগ পোস্টে এই মন্তব্যের পরে আরও আকর্ষণীয় আলোচনা হয়েছে এবং অবশ্যই যদি আপনি এমন কোনও ভাষা ব্যবহার করেন যা এটি সমর্থন করে একক বিবৃতি / ক্রিয়াকলাপে, এটি এত ভাল পরীক্ষা নাও হতে পারে।
যদিও আমার ধারণা নয়, আমি এটি এখানে পোস্ট করতে চেয়েছিলাম কারণ এটি এত সুন্দর একটি সহজ, সহজ প্রশ্ন যার উত্তর প্রায় 10 সেকেন্ডের মধ্যে দেওয়া যেতে পারে যারা এমনকি এমনকি সবচেয়ে সহজ প্রোগ্রাম লিখেছেন। এটির জন্য কিছুটা স্পষ্টত অস্পষ্ট অপারেটর যেমন মডুলো অপারেটর ব্যবহার করার প্রয়োজন হয় না, যা প্রচুর লোক, যারা অন্যথায় মোটামুটি শালীন প্রোগ্রামার, কেবল তাদের সাথেই পরিচিত নয় (যা আমি নিজের অভিজ্ঞতা থেকে জানি)।
ফিবোনাচি, একটি স্ট্রিংকে বিপরীত করুন, বাইটে সেট বিটের সংখ্যা গণনা অন্যান্য সাধারণ বিষয়। প্রজেক্ট অলারেরও ক্রমবর্ধমান অসুবিধার একটি বৃহত সংগ্রহ রয়েছে।
প্রদত্ত সংখ্যার কারণগুলি ফিরিয়ে আনতে তাদের একটি অ্যাপ লিখতে বলুন। এটি করা সহজ এবং অল্প সময়ের মধ্যে ভাল করা কঠিন। আপনি তাদের স্টাইল এবং অল্প সময়ের মধ্যে সমস্যার মাধ্যমে তারা যেভাবে ভাবছেন তা দেখতে পাচ্ছেন।
যদি এটি সি / সি ++ ইন্টারভিউ হয় তবে নিশ্চিত করুন যে ব্যক্তি পয়েন্টার সম্পর্কে জানে।
সাধারণ - সাধারণ অ্যালগরিদম ([একক / দ্বিগুণ] লিঙ্কযুক্ত তালিকা)। প্রতিটি ক্ষেত্রে যুক্ত করার জটিলতা সম্পর্কে জিজ্ঞাসা করুন (শুরুতে, শেষে, অপ্টিমাইজেশান ...)?
(সাধারণ) আপনি কেবল মাত্র 3 * এন / 2 তুলনা সহ কোনও অ্যারে (এন আকার) থেকে ন্যূনতম এবং সর্বোচ্চটি কীভাবে খুঁজে পাবেন?
সি / সি ++: আপনি কীভাবে একাধিক "স্ট্রিকাট" গুলি একটি বাফারে অপ্টিমাইজ করবেন?
সি ++ এফএকিউ লাইট থেকে 6.14 দেখুন:
কীভাবে: একাধিক মান সংরক্ষণ করতে আমি একটি একক পূর্ণসংখ্যা ব্যবহার করতে চাই। কীভাবে এটি কাজ করবে তা বর্ণনা করুন।
যদি বিট মাস্ক এবং ক্রিয়াকলাপ সম্পর্কে তাদের কোনও ধারণা না থাকে তবে তারা সম্ভবত অন্যান্য সমস্যাগুলি সমাধান করতে পারে না।
আমি আমার প্রার্থীদের তাদের পছন্দের কোনও ছদ্ম ভাষায় প্রদত্ত সংখ্যার ফ্যাক্টরিয়াল গণনা করার জন্য একটি প্রোগ্রাম তৈরি করতে বলেছি । এটি সমাধান করা মোটামুটি সহজ সমস্যা এবং পুনরাবৃত্তি সম্পর্কে এটি প্রাকৃতিক ফলোআপ কোয়েশনগুলিতে (যা প্রায়শই জিজ্ঞাসা করা যেতে পারে) নিজেকে ভাল ধার দেয়।