কম্পিউটার

পয়েন্টার ব্যবহার করে একটি স্ট্রিং সি তে প্যালিনড্রোম কিনা তা পরীক্ষা করুন


ধরুন আমরা একটি স্ট্রিং s আছে. প্রদত্ত স্ট্রিংটি প্যালিনড্রোম কিনা তা আমাদের পরীক্ষা করতে হবে। আমাদের এই সমস্যার সমাধান করতে হবে C.

এ পয়েন্টার ব্যবহার করে

সুতরাং, ইনপুট যদি s ="racecar" এর মত হয়, তাহলে আউটপুট হবে True।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • দৈর্ঘ্য :=স্ট্রিং এর আকার
  • ফরোয়ার্ড :=স্ট্রিংয়ের প্রথম অক্ষরের দিকে নির্দেশ করে
  • বিপরীত :=স্ট্রিং এর শেষ অক্ষর নির্দেশ করে
  • যখন বিপরীত অবস্থান>=ফরোয়ার্ডের অবস্থান, কর
    • যদি বিপরীত দ্বারা নির্দেশিত অক্ষর ফরোয়ার্ড দ্বারা নির্দেশিত অক্ষরের সমান হয়, তাহলে
      • অগ্রগতি বাড়ান এবং বিপরীত 1 দ্বারা হ্রাস করুন
    • অন্যথায়
      • লুপ থেকে বেরিয়ে আসুন
  • যদি ফরোয়ার্ডের অবস্থান>=বিপরীত অবস্থান, তাহলে
    • সত্য ফেরান
  • মিথ্যে ফেরত দিন

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

#include <stdio.h>
#include <string.h>
int solve(char *string){
   int length;
   char *forward, *reverse;
   length = strlen(string);
   forward = string;
   reverse = forward + length - 1;
   for (forward = string; reverse >= forward;) {
      if (*reverse == *forward) {
         reverse--;
         forward++;
      } else
         break;
   } if (forward > reverse)
      return 1;
   else
      return 0;
}
int main(){
   char string[] = "racecar";
   printf("%d", solve(string));
}

ইনপুট

"racecar"

আউটপুট

1

  1. একটি অ্যারে প্যালিনড্রোম কিনা বা পুনরাবৃত্তি ব্যবহার করছে না তা পরীক্ষা করার জন্য সি প্রোগ্রাম

  2. একটি অ্যারে প্যালিনড্রোম কিনা বা C++ এ STL ব্যবহার করছে না তা পরীক্ষা করার জন্য প্রোগ্রাম

  3. একটি স্ট্রিং প্যালিনড্রোম কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম

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