পাইথন প্রোগ্রামিং কোর্স এর ধারাবাহিকতায় আজকে আমি এসেছি সমস্যা ২ নিয়ে।
এর পরে আর কোন সমস্যা নিয়ে পর্ব থাকবে না। এর পর থাকবে ১ অথবা ২ টা প্রোজেক্ট।
আজকের সমস্যা টা বেশ বিখ্যাত এবং অনেক কমোন। কমোন মানে সাধারণ এমন নই এটা প্রায় সবাই সল্ভ করে।
মানে, জাতীয় একাট প্রব্লেম আর কি!! শুরু করি তাহলে।
সমস্যা ২ঃ- প্যালিন্ড্রোম কি না !!
সমস্যা ব্যাখ্যাঃ- ইউজার এর থেকে একটা ইনপুট নিতে হবে।
এবং সেটা পেলিন্ড্রোম কিনা চেক করতে হবে। যদি, প্যালিন্ড্রোম হয় তাহলে প্রিন্ট করবে ‘Yes’ আর না হলে ‘No’।
প্যালিন্ড্রোম হচ্ছে সেই শব্দ যেগুলা কে উল্টা করে পড়লেও একি থাকে। মানে, madam এই শব্দ কে যদি আপনি উল্টিয়ে লেখেন তবুও কিন্তু একি জিনিস থাকে। তাই, এই শব্দটা প্যালিন্ড্রোম।
সমস্যা বিশ্লেষণঃ-
এখানে দুইটি পদ্ধতিতে আমরা সল্ভ করা শিখবো। প্রথম পদ্ধতি আগে দেখে নেয়া দরকার।
এই পদ্ধতিতে বেশ কিছু ধাপ অবলম্বন করতে হবে।
ধাপ – ১ঃ- একটা ইনপুট নিতে হবে এবং সেটাকে ছোট হাতের অক্ষরে পরিবর্তন করতে হবে।
data = input() data = data.lower()
ধাপ – ২ঃ- এখন ইনপুট নেয়া শব্দ টাকে উল্টিয়ে চেক করতে হবে যে উল্টানো শব্দ এবং ইনপুট নেয়া শব্দ এক কিনা। যদি, এক হয় তাহলে প্যালিন্ড্রোম হবে আর এক না হলে হবে না।
ধাপ – ৩ঃ- এখন স্ট্রিং এ কোন উল্টানোর মেথড নেই তাই আমরা এই ইনপুট কে লিস্ট ডাটা টাইপে কনভার্ট করব। কারণ, লিস্টে reverse() মেথড দিয়ে শব্দ উল্টানো যায়।
data_list = [] for letter in data: data_list.append(letter)
এখানে প্রথমে একটা data_list নামের লিস্ট ডিক্লেয়ার করেছি।
আবার, একটা ফর লুপ চালিয়ে data ভ্যারিয়েবল থেকে ক্যারেক্টার নিয়ে সেগুলো data_list এ যোগ করছি।
ধাপ – ৪ঃ- এখন আমাদের এই data_list কে উল্টিয়ে ফেলতে হবে। তার জন্য ব্যবহার করব reverse()
data_list.reverse()
ধাপ – ৫ঃ- হয়ে গেছে কিন্তু, যদি ইনপুট এর সাথে চেক করতে চাইল তাহলে তো এটাকে আবার লিস্ট থেকে স্ট্রিং এ কনভার্ট করতে হবে।
temp = '' for item in data_list: temp += item
বুঝেছেন নিশ্চয়!!! একটা temp নামের ভ্যারিয়েবলে ফাঁকা স্ট্রিং রেখেছি।
তারপর, data_list এর উপর লুপ চালিয়ে সেখান থেকে ক্যারেক্টার temp ভ্যারিয়েবলে যোগ করেছি।
ধাপ – ৬ঃ- এখন দেখার পালা যে এই temp এবং ইনপুট এক কিনা।
if data == temp: print("Yes") else: print("No")
এখানে, যদি আগের ইনপুট এবং এই temp এক হয় তাহলে তো প্যালিন্ড্রোম হবে এবং প্রিন্ট হবে “Yes” আর না হলে প্রিন্ট হবে “No”
তাহলে, সম্পুর্ন কোড একবার দেখে নেয়া যাক।
data = 'madam' data = data.lower() data_list = [] for letter in data: data_list.append(letter) data_list.reverse()temp = '' for item in data_list: temp += item if data == temp: print("Yes") else: print("No")
একটা কথা এই সমস্যা টার কিন্তু একটা দারুণ সহজ সমাধান আছে। আগে কোড টা দেখে নেয়া দরকার।
data = ‘madam’
data = data.lower()
temp = data[::-1]
if data == temp:
print(“Yes”)
else:
print(“No”)
এখানে প্রথম দুই লাইন এবং শেষে কন্ডিশন একি আছে।
শুধু মাঝে কনভার্সন কে বাদ দিয়ে একটা অন্য কাজ করেছি।
এখানে, এই data[::-1] দিলে কি হল যে স্ট্রিং ও রিভার্স হয়ে গেল?? আপনিই বলুন। না পারলে গুগল সার্চ করুন। আর, একদমই না পারলে আমি আছি।
ধন্যবাদ!! আসসালামু আলাইকুম! আমি শাহরিয়ার আহমেদ শোভন।
আরো ভালো আর্টিকেল পেতে চলে যান এই লিংক এ www.thebanglatech.xyz
আপনার পোস্টে 2-4 টা comment থাকে। তবুও আপনি নিরুৎসাহিত না হয়ে একের পর এক পোস্ট করে যান. Thanks for this type of mind….