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 listen và sliten 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:
#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ả:
Đã 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.
Bài học Bài tập C phổ biến tại vietjack.com: