C Programming
  • মডিউল ১: বেসিক সিন্টেক্স, ভেরিয়েবলস এবং ডেটা টাইপ
    • মডিউল ১-০: সূচনা
    • মডিউল ১-১: বেসিক স্ট্রাকচার
    • মডিউল ১-২ + মডিউল ১-৩: প্রথম সি প্রোগ্রাম + সি আউটপুট
    • মডিউল ১-৪: প্রোগ্রাম রান করি
    • মডিউল ১-৫+ মডিউল ১-৬:ভেরিয়েবল এবং ডেটা টাইপ
    • মডিউল ১-৭+ মডিউল ১-৮: সি ইনপুট + এস্কেপ সিকুয়েন্স
    • মডিউল ১-৯+ মডিউল ১-১০: ডেটা টাইপ লিমিটেশন
    • মডিউল ১-১১: ভেরিয়েবল নামকরণের নিয়মাবলি
  • মডিউল ২ঃ অপারেটরস, কন্ডিশনাল স্টেটমেন্টস
    • মডিউল ২-০: সূচনা
    • মডিউল ২-১ঃ এরিথমেটিক অপারেটরস
    • মডিউল ২-২ঃ রিলেশনাল অপারেটরস
    • মডিউল ২-৩ঃ লজিকাল অপারেটরস
    • মডিউল ২-৪, ২-৫ঃ ইফ এলস
    • মডিউল ২-৬, ২-৭ঃ ইফ এলস লেডার
    • মডিউল ২-৮, ২-৯ঃ নেস্টেড ইফ এলস
  • মডিউল ৩ঃ লুপ
    • মডিউল ৩-০: সূচনা
    • মডিউল ৩-১, ৩-২: ফর লুপ টাইপ-১
    • মডিউল ৩-৩, ৩-৪: ফর লুপ টাইপ-২
    • মডিউল ৩-৫: ১ থেকে এন পর্যন্ত যোগফল
    • মডিউল ৩-6: লুপের সাথে কন্ডিশন
    • মডিউল ৩-৭, ৩-৮: ব্রেক, কন্টিনিউ স্টেটমেন্ট
    • মডিউল ৩-৯: While & Do While লুপ
  • মডিউল ৫ঃ কন্ডিশনাল স্টেটমেন্ট রিকেপ
    • মডিউল ৫-০ঃসূচনা
    • মডিউল ৫-১ঃ I. Welcome for you with Conditions
    • মডিউল ৫-২ঃ J. Multiples
    • মডিউল ৫-৩ঃ N. Char
    • মডিউল ৫-৪ঃ P. First digit !
    • মডিউল ৫-৫ঃ M. Capital or Small or Digit
    • মডিউল ৫-৬ঃ K. Max and Min
  • মডিউল ৬ঃ লুপ রিকেপ এবং নেস্টেড লুপ
    • মডিউল ৬-০: সূচনা
    • মডিউল ৬-১: ইনক্রিমেন্ট ডিক্রিমেন্ট অপারেটর
    • মডিউল ৬-২: ইভেন নাম্বারস
    • মডিউল ৬-৩: ইভেন, ওড, পজিটিভ, নেগেটিভ
    • মডিউল ৬-৪: ফিক্সড পাসওয়ার্ড
    • মডিউল ৬-৫, ৬-৬: ম্যাক্স, মিন
    • মডিউল ৬-৭: মাল্টিপ্লিকেশন টেবিল
    • মডিউল ৬-৮: ডিজিটস
    • মডিউল ৬-৯, ৬-১০: নেস্টেড ফর লুপ
  • মডিউল ৭ঃ ইন্ট্রোডাকশন টু এরে
    • মডিউল ৭-০: সূচনা
    • মডিউল ৭-১, ৭-২: এরে কি? কেন আমাদের এরে প্রয়োজন?
    • মডিউল ৭-৩,৭-৪: এরে এক্সেস করা
    • মডিউল ৭-৫,৭-৬: এরে ইনপুট আউটপুট
    • মডিউল ৭-৭: এরে ইনিশিয়ালাইজ করা
    • মডিউল ৭-৮: এরে রিভার্স করা
    • মডিউল ৭-৯: এরেতে সবগুলো ভেলু যোগ করা
  • মডিউল ৯ঃ অ্যারে অপারেশন
    • মডিউল ৯-০: সূচনা
    • মডিউল ৯-১ + ৯-২: ইনসার্ট ইলিমেন্ট
    • মডিউল ৯-৩ + ৯-৪: ডিলিট ইলিমেন্ট
    • মডিউল ৯-৫ + ৯-৬: রিভার্স অ্যারে
    • মডিউল ৯-৭ + ৯-৮: কপি অ্যারে
  • মডিউল ১০ঃ ইন্ট্রোডাকশন টু স্ট্রিং
    • মডিউল ১০-০: সূচনা
    • মডিউল ১০-১: স্ট্রিং কি?
    • মডিউল ১০-২: স্ট্রিং ইনিশিয়ালাইজ এবং প্রিন্ট
    • মডিউল ১০-৩: স্ট্রিং ইনপুট
    • মডিউল ১০-৪: স্ট্রিং ইনপুট স্পেস সহ
    • মডিউল ১০-৫: স্ট্রিং এর লেন্থ
    • মডিউল ১০-৬: ক্রিয়েট এ নিউ স্ট্রিং
    • মডিউল ১০-৭: লেটস ইউজ গেটলাইন
    • মডিউল ১০-৮: কাউন্ট
  • মডিউল ১১ঃ স্ট্রিং অপারেশন এবং ফিকোয়েন্সি এরে
    • মডিউল ১১-০ঃ সূচনা
    • মডিউল ১১-১ঃ স্ট্রিং কপি
    • মডিউল ১১-২, ১১-৩ঃ স্ট্রিং লেক্সিকোগ্রাফিকাল কম্পারিসন
    • মডিউল ১১-৪ঃ স্ট্রিং কনকেটিনেশন
    • মডিউল ১১-৫ঃ কাউন্টিং এরে অর ফ্রিকুয়েন্সি এরে
    • মডিউল ১১-৬ঃ কাউন্টিং ক্যারেক্টার
  • মডিউল ১৩: নেস্টেড লুপ রিক্যাপ
    • মডিউল ১৩-০ঃ সূচনা
    • মডিউল ১৩-১ঃ প্যাটার্ন ১
    • মডিউল ১৩-২ঃ প্যাটার্ন ২
    • মডিউল ১৩-৩ঃ প্যাটার্ন ৩
    • মডিউল ১৩-৪ঃ প্যাটার্ন ৪
    • মডিউল ১৩-৫+১৩-৬ঃ Sum of Two Values Equal X
    • মডিউল ১৩-৭+১৩-৮ঃ সিলেকশন সর্ট
  • মডিউল ১৪ঃ ফাংশন এবং পয়েন্টার
    • মডিউল ১৪-০ঃ সূচনা
    • মডিউল ১৪-১ঃ ফাংশন কি?
    • মডিউল ১৪-২ঃ রিটার্ন + প্যারামিটার
    • মডিউল ১৪-৩ঃ রিটার্ন + নো প্যারামিটার
    • মডিউল ১৪-৪ঃ নো রিটার্ন + প্যারামিটার
    • মডিউল ১৪-৫ঃ নো রিটার্ন + নো প্যারামিটার
    • মডিউল ১৪-৬ঃ ইউজফুল বিল্ট-ইন ফাংশন
    • মডিউল ১৪-৭ঃ স্কোপ্স
    • মডিউল ১৪-৮ঃ পয়েন্টার
  • মডিউল ১৫ঃ ফাংশন উইথ পয়েন্টার
    • মডিউল ১৫-০ঃ সূচনা
    • মডিউল ১৫-১ঃ পয়েন্টারস ইন সি
    • মডিউল ১৫-২ঃ কল বাই ভেলু
    • মডিউল ১৫-৩ঃ কল বাই রেফারেন্স
    • মডিউল ১৫-৪ঃ এরে এবং পয়েন্টার
    • মডিউল ১৫-৫ঃ ফাংশন এবং এরে
    • মডিউল ১৫-৬ঃ ফাংশন এবং স্ট্রিং
    • মডিউল ১৫-৭ঃ ফাংশন ইউথ এরে এস রেফারেন্স
  • মডিউল ১৭ঃ Recursion
    • মডিউল ১৭-১ঃ Call Stack
    • মডিউল ১৭-২ঃ রিকার্সন
    • মডিউল ১৭-৩ঃ Print From 1 to n Using Recursion
    • মডিউল ১৭-৪ঃ Print From 5 to 1 using Recursion
    • মডিউল ১৭-৫ঃArray Printing using Recursion
    • মডিউল ১৭-৬ঃ Print From 5 to 1 in Reverse Way
    • মডিউল ১৭-৭ঃ Length of a String using Recursion
  • মডিউল ১৮ঃ 2D এরে
    • মডিউল ১৮-০ঃ সূচনা
    • মডিউল ১৮-১ঃ 2D এরে কি?
    • মডিউল ১৮-২ঃ 2D এরে ইনপুট আউটপুট
    • মডিউল ১৮-৩ঃ 2D এরে প্রিন্টিং বাই রো এন্ড কলাম
    • মডিউল ১৮-৪ঃ ম্যাট্রিক্স এর প্রকারভেদ
    • মডিউল ১৮-৫ঃ জিরো অথবা নাল ম্যাট্রিক্স
    • মডিউল ১৮-৬ঃ ডায়াগোনাল ম্যাট্রিক্স ইউজিং 2D এরে
    • মডিউল ১৮-৭ঃ স্কেলার ম্যাট্রিক্স ইউজিং 2D এরে
    • মডিউল ১৮-৮ঃ ইউনিট ম্যাট্রিক্স ইউজিং 2D এরে
  • মডিউল ১৯ঃ রিকারশন রিকেপ
    • মডিউল ১৯-০ঃ সূচনা
    • মডিউল ১৯-১ঃ মিরর এরে
    • মডিউল ১৯-২ঃ সাম অফ এ ম্যাট্রিক্স
    • মডিউল ১৯-৩ঃ প্রিন্ট ডিজিটস ইউজিং রিকারশন
    • মডিউল ১৯-৪ঃ কাউন্ট ভাওয়েলস
    • মডিউল ১৯-৫ঃ ফেক্টরিয়াল
    • মডিউল ১৯-৬ঃ ম্যাক্স নাম্বার
    • মডিউল ১৯-৭ঃ পেলিনড্রোম
Powered by GitBook
On this page
  1. মডিউল ১৯ঃ রিকারশন রিকেপ

মডিউল ১৯-৭ঃ পেলিনড্রোম

Previousমডিউল ১৯-৬ঃ ম্যাক্স নাম্বার

Last updated 1 year ago

প্রবলেম লিংকঃ

প্রবলেম স্টেটমেন্টঃ ইনপুটে একটি স্ট্রিং থাকবে। স্ট্রিংটি পেলিনড্রোম কিনা তা বলতে হবে। সল্যুশনঃ আমরা এটি দুটি ওয়েতে করতে পারি। প্রথমে নরমাল এপ্রোচ। নরমালি পেলিনড্রোম স্ট্রিং বলতে আমরা বুঝি যদি কোন স্ট্রিং রিভার্স করার পরও সেইম থাকে তাহলে সেটি পেলিনড্রোম হয়। আমরা ইনপুট স্ট্রিংটি আরেকটি স্ট্রিং এ কপি করে রেখে তারপর সেই স্ট্রিংটিকে উল্টিয়ে দিতে পারি। তারপর সেই উল্টো স্ট্রিংটির সাথে ইনপুট নেওয়া সোজা স্ট্রিংটি কম্পেয়ার করে দেখতে পারি সেইম কিনা। সেইম হলে পেলিনড্রোম। আর সেইম না হলে পেলিনড্রোম না।

#include<stdio.h>
#include<string.h>
int main()
{
    char a[1001],b[1001];
    scanf("%s",&a);      // স্ট্রিং ইনপুট নিচ্ছি। 
    strcpy(b,a);         // স্ট্রিংটি কপি করে আরেকটি স্ট্রিং এ রেখে দিচ্ছি। 
    int i=0,j=strlen(b)-1;    // দুটি পয়েন্টার নিচ্ছি। একটি স্ট্রিং এর শুরুতে ( ইন্ডেক্স ০ ) আরেকটি শেষে ( ইনডেক্স লেন্থ-১ ) 
    while(i<j)    // যতক্ষন প্রথম পয়েন্টারটি দ্বিতীয় পয়েন্টার থেকে আগে আছে ততক্ষন লুপ চালাচ্ছি।
    {
        char tmp=b[i];  
        b[i]=b[j];     // দুটি পয়েন্টারে থাকা ক্যারেক্টার দুটি সোয়াপ করে দেওয়া হচ্ছে। 
        b[j]=tmp;
        i++;         // প্রথম পয়েন্টারটি এগিয়ে নেওয়া হচ্ছে। 
        j--;         // দ্বিতীয় পয়েন্টারটি পিছিয়ে নেওয়া হচ্ছে। 
    }     // লুপ শেষে সম্পূর্ণ স্ট্রিংটি উল্টিয়ে যাবে।  
    if(strcmp(a,b)==0)      // এবার আমরা উল্টো স্ট্রিং এবং সোজা স্ট্রিং কম্পেয়ার করে দেখছি সেইম কিনা। 
    {
        printf("YES");     // সেইম হলে ইয়েস প্রিন্ট করে দিচ্ছি।
    }
    else 
    {
        printf("NO");     // আর সেইম না হলে নো প্রিন্ট করে দিচ্ছি।
    }
    return 0;
}

দ্বিতীয় সল্যুশনঃ দুটি পয়েন্টার নিয়েও আমরা এটি করতে পারি। তাহলে আমাদের স্ট্রিং উল্টোতে হবে না কম্পেয়ারও করতে হবে না। দুটি পয়েন্টার নিব। একটি স্ট্রিং এর শুরুতে ( ইন্ডেক্স ০ ) আরেকটি শেষে ( ইনডেক্স লেন্থ-১ ) । তারপর দেখব এই দুটি ইন্ডেক্সে থাকা ক্যারেক্টার দুটি সেইম কিনা । সেইম না হলে সাথে সাথে আমরা বলে দিতে পারব এটি পেলিনড্রোম না। এটি ট্র্যাক রাখার জন্য আমরা শুরুতে একটি ফ্ল্যাগ ভেরিয়েবল নিয়ে নিতে পারি এবং তাতে ১ রেখে দিতে পারি। যখনি দেখব ক্যারেক্টার দুটি সেইম না তখনি ফ্ল্যাগ এর মধ্যে ০ রেখে দিব। তারপর লুপ শেষে চেক করে দেখব ফ্ল্যাগ এর মধ্যে আমাদের শুরুতে রাখা ১ আছে কিনা। থাকলে এটি পেলিনড্রোম আর না থাকলে পেলিনড্রোম না।

#include<stdio.h>
#include<string.h>
int main()
{
    char a[1001];
    scanf("%s",a);      // স্ট্রিং ইনপুট নিচ্ছি। 
    int i=0,j=strlen(a)-1;     // দুটি পয়েন্টার নিচ্ছি। একটি স্ট্রিং এর শুরুতে ( ইন্ডেক্স ০ ) আরেকটি শেষে ( ইনডেক্স লেন্থ-১ ) 
    int flag=1;     // শুরুতে একটি ফ্ল্যাগ ভেরিয়েবল নিয়ে তাতে ১ রেখে দিচ্ছি।
    while(i<j)     // যতক্ষন প্রথম পয়েন্টারটি দ্বিতীয় পয়েন্টার থেকে আগে আছে ততক্ষন লুপ চালাচ্ছি।
    {
        if(a[i]!=a[j])  // চেক করে দেখছি  এই দুটি পয়েন্টারে থাকা ক্যারেক্টার দুটি সেইম কিনা । যদি সেইম না হয় তাহলে সাথে সাথে আমরা বলে দিতে পারব এটি পেলিনড্রোম না। 
        { 
            flag=0;     // তখন আমরা ফ্ল্যাগ এর মধ্যে ০ রেখে দিচ্ছি।
        }
        i++;       // প্রথম পয়েন্টারটি এগিয়ে নেওয়া হচ্ছে। 
        j--;       // দ্বিতীয় পয়েন্টারটি পিছিয়ে নেওয়া হচ্ছে। 
    }
    if(flag==0)    // লুপ শেষে চেক করে দেখছি ফ্ল্যাগ এর মধ্যে আমাদের শুরুতে রাখা ১ আছে নাকি ফ্ল্যাগ এর ভেলু চেঞ্জ হয়ে ০ হয়ে গিয়েছে। 
    {
        printf("NO");    // যদি ০ হয়ে যায় তাহলে এটি পেলিনড্রোম না।
    }
    else 
    {
        printf("YES");    // আর যদি ১ থাকে তাহলে এটি একটি পেলিনড্রোম স্ট্রিং।
    }
    return 0;
}

গিটবুক গুলো আপনাদের কেমন লাগছে? এই ফর্মটি ফিলাপ করে আমাদের জানাতে পারেন।

I. Palindrome
https://forms.gle/VaLLNgM2cWHzsuRV8