কম্পিউটার

পাইথনে প্যালিনড্রোম:কীভাবে একটি সংখ্যা পরীক্ষা করবেন প্যালিনড্রোম?


প্যালিনড্রোম কি?

একটি প্যালিনড্রোম হল একটি স্ট্রিং যা বাম থেকে ডানে বা ডান থেকে বামে পড়ার সময় একই হয়। অন্য কথায়, একটি প্যালিনড্রোম স্ট্রিং হল যার বিপরীত মূল স্ট্রিংয়ের সমান।

উদাহরণস্বরূপ, সিভিক, ম্যাডাম হল প্যালিনড্রোম।

বিড়াল একটি প্যালিনড্রোম নয়। যেহেতু এর বিপরীতটি ট্যাক, যা মূল স্ট্রিং (বিড়াল) এর সমান নয়।

ইনপুট স্ট্রিং একটি প্যালিনড্রোম কিনা তা খুঁজে বের করার জন্য একটি প্রোগ্রাম লিখুন।

পদ্ধতি 1 - স্ট্রিং এর বিপরীত খুঁজুন

  • প্রোগ্রামের প্রধান জিনিসটি হল স্ট্রিংটির বিপরীতটি খুঁজে বের করা।

  • একটি স্ট্রিং উল্টানোর যে কোনো পদ্ধতি ব্যবহার করে বিপরীতটি পাওয়া যেতে পারে। আমরা স্ট্রিং বিপরীত করতে সহজ স্লাইসিং পদ্ধতি ব্যবহার করা হবে. অন্তর্নির্মিত ‘’.join(reversed())ও ব্যবহার করা যেতে পারে। যদিও একটি স্ট্রিং বিপরীত করার অন্যান্য উপায় আছে, আমরা একটি সহজ একটি সঙ্গে যেতে হবে.

  • মূল স্ট্রিং এর সাথে বিপরীত স্ট্রিং তুলনা করুন।

  • উভয় স্ট্রিং সমান হলে সত্য ফেরত দিন, অন্যথায় মিথ্যা ফেরত দিন।

উদাহরণ

def isPalindrome(s):rev=s[::-1] if(rev==s):return True return Falseprint("Enter a string")st=input()print(isPalindrome(st)) 

আউটপুট

একটি stringmadamTrue লিখুন

পদ্ধতি 2 - স্ট্রিংয়ের বিপরীত খুঁজে না পেয়ে

ধারণাটি হল স্ট্রিংটির প্রথম এবং শেষ সূচকে অক্ষরগুলি অসম না হওয়া পর্যন্ত অবিচ্ছিন্নভাবে তুলনা করা।

আমরা একটি স্ট্রিং -

এর বিপরীত না খুঁজে দুটি উদাহরণ দেখতে পাব

স্ট্রিং মান "ম্যাডাম":

  • আমরা প্রথম এবং শেষ অক্ষরগুলির তুলনা করি যা সমান, আরও আমরা দ্বিতীয় এবং দ্বিতীয় শেষ অক্ষরগুলির তুলনা করি যা আবার সমান। শেষ আমরা শুধুমাত্র একটি চরিত্র বাকি আছে. সুতরাং, স্ট্রিং একটি প্যালিনড্রোম।

স্ট্রিং মান "রিডার":

  • দ্বিতীয় এবং দ্বিতীয় শেষ উপাদানের মধ্যে তুলনা না হওয়া পর্যন্ত অক্ষরগুলি সমান।

    যখন তৃতীয় এবং তৃতীয় শেষ অক্ষর তুলনা করা হয়, তারা সমান হয় না, তাই এটি একটি প্যালিনড্রোম নয়।

  • আমরা এই ধারণাটি পুনরাবৃত্তির মাধ্যমে বা দুটি পয়েন্টার ব্যবহার করে বাস্তবায়ন করতে পারি। আমরা দুটি পয়েন্টার ব্যবহার করে বাস্তবায়ন করা হবে. আমরা 0 এ স্টার্ট পয়েন্টার দিয়ে শুরু করি এবং শেষ সূচকে শেষ পয়েন্টার দিয়ে শুরু করি। আমরা তুলনা করা শুরু করি এবং অক্ষর সমান হলে, আমরা স্টার্ট পয়েন্টার বৃদ্ধি করি এবং শেষ পয়েন্টার হ্রাস করি (এভাবে সেগুলিকে দ্বিতীয় এবং দ্বিতীয় শেষ অক্ষরে নিয়ে আসে এবং আরও অনেক কিছু)।

  • আমরা মিথ্যা ফেরত কখন? যদি আমরা দেখতে পাই যে পয়েন্টারের যেকোন সেটের জন্য অক্ষর সমান নয়, তাহলে আমাদের আর ইনডেক্স খুঁজতে হবে না এবং আমরা False ফেরত দিতে পারি।

  • আমরা সত্য ফিরে কখন? অন্য ক্ষেত্রে, যদি স্ট্রিং একটি প্যালিন্ড্রোম হয়, আমরা ট্রু রিটার্ন করব যখন উভয় পয়েন্টার সমান হয়ে যাবে (শুধুমাত্র 1টি অক্ষর চেক করতে বাকি আছে) বা স্টার্ট পয়েন্টার শেষ পয়েন্টারকে ছাড়িয়ে যাবে (সমস্ত অক্ষর চেক করা হয়েছে) এবং তাই সত্য ফিরে আসবে।

উদাহরণ

def isPalindrome(s):rev=s[::-1] if(rev==s):return True return Falseprint("Enter a string")st=input()print(isPalindrome(st)) 

আউটপুট

 একটি স্ট্রিংরিডার লিখুন মিথ্যা>>> একটি স্ট্রিংম্যাডাম লিখুন সত্য

  1. পাইথন প্রোগ্রামে প্রদত্ত নম্বরটি ফিবোনাচি নম্বর কিনা তা কীভাবে পরীক্ষা করবেন?

  2. পাইথনে একটি স্ট্রিং আলফানিউমেরিক কিনা তা কীভাবে পরীক্ষা করবেন?

  3. পাইথনে একটি স্ট্রিং অন্তত একটি অক্ষর এবং একটি সংখ্যা আছে কিনা তা কিভাবে পরীক্ষা করবেন?

  4. পাইথনে একটি স্ট্রিং এর বর্ণমালা বা সংখ্যা আছে কিনা তা আমি কিভাবে পরীক্ষা করব?