Computer >> Máy Tính >  >> Lập trình >> lập trình C

Kiểm tra xem một chuỗi có phải là palindrome trong C hay không bằng cách sử dụng con trỏ

Giả sử chúng ta có một chuỗi s. Chúng ta phải kiểm tra xem chuỗi đã cho có phải là palindrome hay không. Chúng ta phải giải quyết vấn đề này bằng cách sử dụng các con trỏ trong C.

Vì vậy, nếu đầu vào giống như s ="racecar", thì đầu ra sẽ là True.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • length:=kích thước của chuỗi
  • chuyển tiếp:=trỏ đến ký tự đầu tiên của chuỗi
  • ngược lại:=trỏ đến ký tự cuối cùng của chuỗi
  • trong khi vị trí của đảo ngược> =vị trí của phía trước, thực hiện
    • nếu ký tự được trỏ bởi đảo ngược giống với ký tự được trỏ bằng trỏ tới, thì
      • tăng số tiến và giảm số lùi đi 1
    • nếu không thì
      • ra khỏi vòng lặp
  • nếu vị trí thuận> =vị trí đảo ngược, thì
    • trả về True
  • trả về Sai

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

#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));
}

Đầu vào

"racecar"

Đầu ra

1