📋 সমস্যা:
একটি ফাংশন লিখুন যা একটি স্ট্রিং ইনপুট নেবে এবং সেটি palindrome কিনা তা চেক করবে। Palindrome হল সেই শব্দ বা বাক্য যা সামনে থেকে পড়া আর পেছন থেকে পড়া একই থাকে। যেমন: 'madam', 'racecar'
💡 উদাহরণ:
Input: 'madam' Output: true Input: 'hello' Output: false Input: 'A man, a plan, a canal: panama' Output: true (স্পেস ও punctuation ইগনোর করে)
📋 সমস্যা:
1 থেকে n পর্যন্ত সংখ্যা প্রিন্ট করুন। কিন্তু 3 দিয়ে বিভাজ্য সংখ্যার জায়গায় 'Fizz', 5 দিয়ে বিভাজ্য সংখ্যার জায়গায় 'Buzz', এবং 3 ও 5 উভয় দিয়ে বিভাজ্য সংখ্যার জায়গায় 'FizzBuzz' প্রিন্ট করুন।
💡 উদাহরণ:
Input: n = 15 Output: 1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, FizzBuzz
📋 সমস্যা:
একটি array এবং একটি target সংখ্যা দেওয়া থাকবে। array থেকে দুটি সংখ্যা বের করুন যাদের যোগফল target এর সমান। সংখ্যা দুটির index return করুন। ধরে নিন প্রতিটি ইনপুটের জন্য একটি মাত্র সমাধান আছে।
💡 উদাহরণ:
Input: nums = [2, 7, 11, 15], target = 9 Output: [0, 1] (কারণ nums[0] + nums[1] = 2 + 7 = 9) Input: nums = [3, 2, 4], target = 6 Output: [1, 2]
📋 সমস্যা:
দুটি স্ট্রিং দেওয়া থাকলে চেক করুন তারা anagram কিনা। Anagram মানে স্ট্রিং দুটির অক্ষর সংখ্যা একই কিন্তু বিন্যাস ভিন্ন।
💡 উদাহরণ:
Input: s1 = 'listen', s2 = 'silent' Output: true Input: s1 = 'hello', s2 = 'world' Output: false Input: s1 = 'anagram', s2 = 'nagaram' Output: true
📋 সমস্যা:
একটি array দেওয়া থাকলে সর্বোচ্চ যোগফলযুক্ত contiguous subarray বের করুন।
💡 উদাহরণ:
Input: [-2, 1, -3, 4, -1, 2, 1, -5, 4] Output: 6 (subarray [4, -1, 2, 1] যোগফল 6 হয়) Input: [5, 4, -1, 7, 8] Output: 23 (পুরো array)
📋 সমস্যা:
একটি সংখ্যার factorial বের করার ফাংশন লিখুন। Factorial হলো 1 থেকে সেই সংখ্যা পর্যন্ত সব সংখ্যার গুণফল। যেমন: 5! = 5 × 4 × 3 × 2 × 1 = 120
💡 উদাহরণ:
Input: 5 Output: 120 Input: 0 Output: 1 (0! = 1 ধরা হয়) Input: 3 Output: 6
📋 সমস্যা:
একটি array থেকে duplicate উপাদানগুলো সরিয়ে unique উপাদান সম্বলিত নতুন array return করুন।
💡 উদাহরণ:
Input: [1, 2, 2, 3, 4, 4, 5] Output: [1, 2, 3, 4, 5] Input: ['a', 'b', 'a', 'c', 'b'] Output: ['a', 'b', 'c']
📋 সমস্যা:
একটি স্ট্রিং রিভার্স করুন। ইনপুট 'hello' দিলে আউটপুট হবে 'olleh'। ইন্টারভিউতে এই প্রশ্নটি খুব কমন।
💡 উদাহরণ:
Input: 'hello' Output: 'olleh' Input: 'JavaScript' Output: 'tpircSavaJ'
📋 সমস্যা:
1 থেকে n পর্যন্ত সংখ্যা সম্বলিত একটি array দেওয়া থাকবে যেখানে একটি সংখ্যা missing। missing সংখ্যাটি বের করুন।
💡 উদাহরণ:
Input: [1, 2, 4, 5, 6], n = 6 Output: 3 Input: [2, 3, 4, 5], n = 5 Output: 1
📋 সমস্যা:
Fibonacci সিরিজের n-তম সংখ্যা বের করুন। Fibonacci সিরিজ: 0, 1, 1, 2, 3, 5, 8, 13, 21... যেখানে প্রতিটি সংখ্যা তার আগের দুটি সংখ্যার যোগফল।
💡 উদাহরণ:
Input: n = 0 → Output: 0 Input: n = 1 → Output: 1 Input: n = 6 → Output: 8 Input: n = 10 → Output: 55
📋 সমস্যা:
একটি array এবং একটি size দেওয়া থাকবে। array টিকে এমনভাবে ভাগ করুন যেন প্রতিটি ছোট array-র দৈর্ঘ্য ওই size এর সমান হয়।
💡 উদাহরণ:
Input: arr = [1, 2, 3, 4, 5], size = 2 Output: [[1, 2], [3, 4], [5]] Input: arr = [1, 2, 3, 4, 5, 6, 7, 8], size = 3 Output: [[1, 2, 3], [4, 5, 6], [7, 8]]
📋 সমস্যা:
একটি বাক্য বা স্ট্রিংয়ের প্রতিটি শব্দের প্রথম অক্ষর বড় হাতের (Capitalized) করুন এবং বাকি অক্ষরগুলো ছোট হাতের রাখুন।
💡 উদাহরণ:
Input: 'i am a software engineer' Output: 'I Am A Software Engineer' Input: 'zarratin lifestyle brand' Output: 'Zarratin Lifestyle Brand'
📋 সমস্যা:
একটি বাক্যের মধ্যে সবচেয়ে দীর্ঘতম শব্দটি খুঁজে বের করুন এবং তার দৈর্ঘ্য রিটার্ন করুন।
💡 উদাহরণ:
Input: 'The quick brown fox jumped over the lazy dog' Output: 6 (কারণ 'jumped' সবচেয়ে বড় শব্দ)
📋 সমস্যা:
দুটি অ্যারের মধ্যে যে উপাদানগুলো কমন (উভয় অ্যারেতে আছে) সেগুলো নিয়ে একটি নতুন অ্যারে তৈরি করুন।
💡 উদাহরণ:
Input: [1, 2, 2, 1], [2, 2] Output: [2] Input: [4, 9, 5], [9, 4, 9, 8, 4] Output: [4, 9]
📋 সমস্যা:
একটি অ্যারে থেকে সব শূন্যগুলোকে (0) অ্যারের শেষে নিয়ে যান, কিন্তু বাকি সংখ্যাগুলোর রিলেটিভ অর্ডার ঠিক থাকতে হবে। এটি 'in-place' করতে হবে (নতুন অ্যারে না বানিয়ে)।
💡 উদাহরণ:
Input: [0, 1, 0, 3, 12] Output: [1, 3, 12, 0, 0]
📋 সমস্যা:
একটি নেস্টেড অ্যারেকে (অ্যারের ভেতর অ্যারে) ফ্ল্যাট করে একটি সিঙ্গেল অ্যারেতে রূপান্তর করুন।
💡 উদাহরণ:
Input: [1, [2, [3, [4]], 5]] Output: [1, 2, 3, 4, 5]
📋 সমস্যা:
একটি সংখ্যা ইনপুট নিয়ে সেটি প্রাইম (মৌলিক) সংখ্যা কিনা তা চেক করুন।
💡 উদাহরণ:
Input: 7 -> Output: true Input: 10 -> Output: false Input: 1 -> Output: false
📋 সমস্যা:
একটি স্ট্রিংয়ে কয়টি ভাওয়েল (a, e, i, o, u) আছে তা গণনা করুন।
💡 উদাহরণ:
Input: 'hello world' Output: 3 Input: 'Zarratin' Output: 3
📋 সমস্যা:
একটি বাক্যের প্রতিটি শব্দের প্রথম অক্ষর বড় হাতের করুন।
💡 উদাহরণ:
Input: 'javascript is fun' Output: 'Javascript Is Fun'
📋 সমস্যা:
একটি সংখ্যা n ইনপুট নিয়ে প্রথম n সংখ্যক ফিবোনাচ্চি সিরিজ জেনারেট করুন।
💡 উদাহরণ:
Input: 5 Output: [0, 1, 1, 2, 3]
📋 সমস্যা:
একটি স্ট্রিং ইনপুট নিয়ে সেটিকে কম্প্রেস করুন। যেমন: 'aaabbc' হবে 'a3b2c1'। তবে কম্প্রেসড স্ট্রিংটি যদি মূল স্ট্রিংয়ের চেয়ে বড় হয়, তবে মূল স্ট্রিংটিই রিটার্ন করুন।
💡 উদাহরণ:
Input: 'aaabbbbcc' -> Output: 'a3b4c2' Input: 'abc' -> Output: 'abc' (কারণ কম্প্রেসড করলে 'a1b1c1' বড় হয়ে যায়)
📋 সমস্যা:
একটি স্ট্রিং থেকে প্রথম অক্ষরটি খুঁজে বের করুন যা পুরো স্ট্রিংয়ে মাত্র একবার এসেছে। যদি এমন কোনো অক্ষর না থাকে তবে null রিটার্ন করুন।
💡 উদাহরণ:
Input: 'javascriptisawesome' -> Output: 'j' Input: 'aabbcc' -> Output: null
📋 সমস্যা:
একটি সর্টেড (Sorted) অ্যারে এবং একটি টার্গেট ভ্যালু দেওয়া থাকবে। বাইনারি সার্চ অ্যালগরিদম ব্যবহার করে টার্গেট ভ্যালুর ইনডেক্স বের করুন।
💡 উদাহরণ:
Input: nums = [1, 3, 5, 7, 9], target = 7 Output: 3 Input: nums = [1, 3, 5, 7, 9], target = 2 Output: -1
📋 সমস্যা:
একটি পূর্ণসংখ্যা দেওয়া থাকলে চেক করুন সেটি ২-এর পাওয়ার (2^n) কিনা।
💡 উদাহরণ:
Input: 16 -> Output: true Input: 18 -> Output: false
📋 সমস্যা:
একটি স্ট্রিংয়ে বিভিন্ন ধরণের ব্র্যাকেট ({}, [], ()) থাকবে। চেক করুন সেগুলো সঠিকভাবে ওপেন এবং ক্লোজ হয়েছে কিনা।
💡 উদাহরণ:
Input: '{[()]}' -> Output: true
Input: '{[(])}' -> Output: false📋 সমস্যা:
একগুচ্ছ স্ট্রিং দেওয়া থাকলে সেগুলোকে অ্যানাগ্রাম অনুযায়ী গ্রুপ করুন।
💡 উদাহরণ:
Input: ['eat', 'tea', 'tan', 'ate', 'nat', 'bat'] Output: [['eat', 'tea', 'ate'], ['tan', 'nat'], ['bat']]
📋 সমস্যা:
একাধিক অ্যারে দেওয়া থাকলে এমন উপাদানগুলো বের করুন যা সবগুলো অ্যারেতে বিদ্যমান।
💡 উদাহরণ:
Input: [[1,2,3], [2,3,4], [3,4,5]] -> Output: [3]
📋 সমস্যা:
একটি অ্যারে এবং একটি সংখ্যা k দেওয়া থাকবে। অ্যারেকে ডানে k পজিশন পর্যন্ত রোটেট (ঘোরানো) করুন।
💡 উদাহরণ:
Input: [1,2,3,4,5], k = 2 -> Output: [4,5,1,2,3]
📋 সমস্যা:
একটি সংখ্যার প্রতিটি ডিজিটের যোগফল বের করুন যতক্ষণ না সেটি এক ডিজিটের সংখ্যায় পরিণত হয়।
💡 উদাহরণ:
Input: 38 -> 3 + 8 = 11 -> 1 + 1 = 2. Output: 2
📋 সমস্যা:
একটি অবজেক্টের পুরোপুরি আলাদা কপি (Deep Clone) তৈরি করুন যেন অরিজিনাল অবজেক্টে পরিবর্তন করলে কপিতে প্রভাব না পড়ে।
💡 উদাহরণ:
Input: {a: 1, b: {c: 2}}
Output: {a: 1, b: {c: 2}} (নতুন রেফারেন্স)📋 সমস্যা:
একটি আন-সর্টেড অ্যারে থেকে সবচেয়ে বড় ধারাবাহিক সংখ্যার সিকোয়েন্সের দৈর্ঘ্য বের করুন।
💡 উদাহরণ:
Input: [100, 4, 200, 1, 3, 2] Output: 4 (কারণ ধারাবাহিক সিকোয়েন্স হলো [1, 2, 3, 4])
📋 সমস্যা:
একটি স্ট্রিংয়ের প্রতিটি শব্দের প্রথম অক্ষর বড় হাতের এবং বাকিগুলো ছোট হাতের করুন। (অন্যভাবে)
💡 উদাহরণ:
Input: 'zarratin lifestyle' -> Output: 'Zarratin Lifestyle'
📋 সমস্যা:
একটি অ্যারেতে ১ থেকে n পর্যন্ত সংখ্যা আছে। কিছু সংখ্যা দুবার এসেছে। সেগুলো খুঁজে বের করুন।
💡 উদাহরণ:
Input: [4,3,2,7,8,2,3,1] Output: [2, 3]
📋 সমস্যা:
প্রথম অ্যারের এমন এলিমেন্টগুলো বের করুন যা দ্বিতীয় অ্যারেতে নেই।
💡 উদাহরণ:
Input: [1, 2, 3], [2, 3, 4] -> Output: [1]
📋 সমস্যা:
পাসকাল ট্রায়াঙ্গেলের n-তম রো (row) জেনারেট করুন।
💡 উদাহরণ:
Input: 3 -> Output: [1, 3, 3, 1]
📋 সমস্যা:
চেক করুন দুটি স্ট্রিং অ্যানাগ্রাম কিনা। (সহজ পদ্ধতি)
💡 উদাহরণ:
Input: 'listen', 'silent' -> true
📋 সমস্যা:
একটি বাইনারি অ্যারে (0 এবং 1 সম্বলিত) থেকে সবচেয়ে বড় ধারাবাহিক ১-এর সংখ্যা বের করুন।
💡 উদাহরণ:
Input: [1, 1, 0, 1, 1, 1] Output: 3
📋 সমস্যা:
একটি অ্যারে যেখানে ০ থেকে k এর মধ্যে সংখ্যা আছে, সেটিকে কাউন্টিং সর্ট ব্যবহার করে সাজান।
💡 উদাহরণ:
Input: [2, 0, 2, 1, 1, 0] Output: [0, 0, 1, 1, 2, 2]
📋 সমস্যা:
চেক করুন একটি স্ট্রিং অন্য একটি স্ট্রিংয়ের রোটেশন (ঘোরানো রূপ) কিনা।
💡 উদাহরণ:
Input: 'waterbottle', 'erbottlewat' -> Output: true
📋 সমস্যা:
একটি অ্যারে এবং একটি রেঞ্জ [i, j] দেওয়া থাকলে ওই রেঞ্জের সংখ্যাগুলোর যোগফল বের করুন।
💡 উদাহরণ:
Input: [1, 2, 3, 4, 5], range: [1, 3] -> Output: 9 (2+3+4)
📋 সমস্যা:
একটি Debounce ফাংশন তৈরি করুন। এটি এমনভাবে কাজ করবে যেন একটি ফাংশন বারবার কল হলেও সেটি একটি নির্দিষ্ট সময় (delay) পার হওয়ার আগে এক্সিকিউট না হয়। (মূলত সার্চ বা উইন্ডো রিসাইজ ইভেন্টে ব্যবহৃত হয়)।
💡 উদাহরণ:
Input: একটি ফাংশন এবং ৫০০ মিলি-সেকেন্ড। Output: ইউজার টাইপিং থামালে ৫০০ms পর ফাংশনটি রান করবে।
📋 সমস্যা:
একটি নেস্টেড অবজেক্টকে ফ্ল্যাট করুন যেন সব কি (key) গুলো একটি লেভেলে চলে আসে (ডট নোটেশন ব্যবহার করে)।
💡 উদাহরণ:
Input: { a: 1, b: { c: 2, d: { e: 3 } } }
Output: { 'a': 1, 'b.c': 2, 'b.d.e': 3 }📋 সমস্যা:
অ্যারের জন্য একটি মেথড `.last()` তৈরি করুন যা অ্যারের শেষ উপাদানটি রিটার্ন করবে। যদি অ্যারে খালি থাকে তবে -1 রিটার্ন করবে।
💡 উদাহরণ:
Input: [1, 2, 3].last() -> Output: 3 Input: [].last() -> Output: -1
📋 সমস্যা:
একটি অপ্টিমাইজড ফিবোনাচ্চি ফাংশন লিখুন যা মেমোাইজেশন (Memoization) ব্যবহার করে বড় সংখ্যার জন্য দ্রুত আউটপুট দিবে।
💡 উদাহরণ:
Input: 50 Output: 12586269025 (যা সাধারণ রিকার্সনে অনেক সময় নেয়)
📋 সমস্যা:
দুটি স্ট্রিং s এবং t দেওয়া থাকবে। চেক করুন s স্ট্রিংটি t-এর একটি সাব-সিকোয়েন্স কিনা। (অর্থাৎ s-এর সব অক্ষর t-তে একই ক্রমে আছে কিনা)।
💡 উদাহরণ:
Input: s='abc', t='ahbgdc' -> Output: true Input: s='axc', t='ahbgdc' -> Output: false
📋 সমস্যা:
আপনি n সংখ্যক সিঁড়ি উঠছেন। প্রতিবার আপনি ১ বা ২ ধাপ উঠতে পারেন। কতগুলো আলাদা উপায়ে আপনি সিঁড়ির শীর্ষে পৌঁছাতে পারেন?
💡 উদাহরণ:
Input: 3 -> Output: 3 (1+1+1, 1+2, 2+1) Input: 2 -> Output: 2 (1+1, 2)
📋 সমস্যা:
একটি স্ট্রিং দেওয়া থাকবে যাতে অনেকগুলো শব্দ এবং স্পেস আছে। শেষ শব্দটির দৈর্ঘ্য রিটার্ন করুন।
💡 উদাহরণ:
Input: 'Hello World ' -> Output: 5 Input: ' fly me to the moon ' -> Output: 4
📋 সমস্যা:
একটি ফাংশন লিখুন যা অন্য একটি ফাংশনকে কারিং (Currying) করবে। অর্থাৎ ফাংশনটি তার সব আর্গুমেন্ট না পাওয়া পর্যন্ত নতুন ফাংশন রিটার্ন করতে থাকবে।
💡 উদাহরণ:
Input: sum(a, b, c) -> Output: curriedSum(1)(2)(3) == 6
📋 সমস্যা:
দুটি সর্টেড অ্যারে দেওয়া থাকবে। সেগুলোকে মার্জ করে একটি নতুন সর্টেড অ্যারে তৈরি করুন।
💡 উদাহরণ:
Input: [1, 3, 5], [2, 4, 6] -> Output: [1, 2, 3, 4, 5, 6]
📋 সমস্যা:
একটি অ্যারেতে প্রতিটি সংখ্যা দুবার করে আছে, শুধুমাত্র একটি সংখ্যা একবার আছে। সেই সংখ্যাটি খুঁজে বের করুন। (O(n) টাইম এবং O(1) স্পেসে করতে হবে)।
💡 উদাহরণ:
Input: [4, 1, 2, 1, 2] Output: 4