Chương trình anagram trong C



Bài tập C: kiểm tra hai chuỗi có phải là anagram không

Anagram là thuật ngữ để chỉ hai chuỗi có số ký tự và các ký tự giống nhau, nhưng thứ tự của các ký tự trong chuỗi có thể khác nhau.

Ví dụ: hai chuỗi listensliten là anagram.

Để giải bài tập C này, trước hết bạn cần so sánh độ dài của hai chuỗi (sử dụng hàm strlen() để tìm độ dài). Tiếp đó, bạn sắp xếp hai chuỗi theo thứ tự chữ cái (bạn có thể tham khảo cách sắp xếp ở chương Sắp xếp các ký tự của chuỗi trong C), và cuối cùng sử dụng vòng lặp để duyệt qua hai chuỗi đã sắp xếp và so sánh xem từng ký tự của hai chuỗi này có giống nhau không.

Chương trình C

Dưới đây là chương trình C để giải bài tập kiểm tra anagram trong C:

Quảng cáo
#include <stdio.h>
#include <string.h>

int main (void) {
   char s1[] = "vietjack";
   char s2[] = "jackviet";

   char temp;

   int i, j;
   int n  = strlen(s1);
   int n1 = strlen(s2);

   // neu hai chuoi co do dai khac nhau, thi chung khong phai la anagram

   if( n != n1) {    
      printf("Chuoi %s va chuoi %s khong phai la anagram !!! \n", s1, s2);
      return 0;
   }
   
   // dau tien sap xep ca hai chuoi

   for (i = 0; i < n-1; i++) {
      for (j = i+1; j < n; j++) {
         if (s1[i] > s1[j]) {
            temp  = s1[i];
            s1[i] = s1[j];
            s1[j] = temp;
         }
         if (s2[i] > s2[j]) {
            temp  = s2[i];
            s2[i] = s2[j];
            s2[j] = temp;
         }
      }
   }

   // sau khi sap xep xong, so sanh tung ky tu cua hai chuoi

   for(i = 0; i<n; i++) {
      if(s1[i] != s2[i]) {    
         printf("Hai chuoi khong la anagram !!! \n", s1, s2);
         return 0;
      }
   }

   printf("Hai chuoi la anagram !!!! \n");
   return 0;
}

Biên dịch chương trình C trên sẽ cho kết quả:

Chương trình anagram trong C
Quảng cáo

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập Java. Khóa học có giá chỉ 300K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.

Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp a Tuyền, cựu sinh viên Bách Khoa K53, fb: https://www.facebook.com/tuyen.vietjack

Follow facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.


bai-tap-chuoi-trong-c.jsp


Tài liệu giáo viên