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 doanh nghiệp với Java. Khóa học có giá chỉ 400K, 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 chị Thu, trợ lý anh Tuyền để hỗ trợ thanh toán qua mã QR ngân hàng Việt Nam, fb: https://www.facebook.com/Thule.59
Anh Tuyền, tác giả khóa học, là cựu sinh viên chương trình đào tạo kĩ sư tài năng của đại học Bách Khoa Hà Nội với hơn 5 năm kinh nghiệm đi làm thực tế doanh nghiệp và cũng là Founder website vietjack.com, web giáo dục phổ biến nhất Việt Nam hiện tại (năm 2024). Java cũng là ngôn ngữ lập trình dễ đi xin việc nhất hiện tại, với mức lương cao, hãy nâng cao kiến thức IT của bản thân mình vì một Việt Nam giàu mạnh.
Loạt bài hướng dẫn của chúng tôi dựa một phần trên nguồn tài liệu của: Tutorialspoint.com
Bài học Bài tập C phổ biến tại vietjack.com: