Luyện tập #3
Bài học 12 trên 14 trong khóa học Bảng băm, loạt cấu trúc dữ liệu #4 của Coddy.
Thử thách
DễViết một hàm (function) isAnagram nhận hai chuỗi s1 và s2, rồi trả về kết quả cho biết chúng có phải là hoán vị chữ cái hay không: chúng có cùng tập hợp ký tự, bất kể thứ tự.
Phép so sánh có phân biệt chữ hoa chữ thường. Các chuỗi có độ dài khác nhau không bao giờ là hoán vị chữ cái của nhau.
Bạn phải sử dụng lớp HashMap được cung cấp trong hashmap.<ext> — không sử dụng các cấu trúc có sẵn trong ngôn ngữ như tập hợp, từ điển hoặc map.
Tự làm thử
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include "solution.h"
int main() {
char s1[8192];
char s2[8192];
if (!fgets(s1, sizeof(s1), stdin)) s1[0] = '\0';
if (!fgets(s2, sizeof(s2), stdin)) s2[0] = '\0';
s1[strcspn(s1, "\r\n")] = '\0';
s2[strcspn(s2, "\r\n")] = '\0';
bool r = isAnagram(s1, s2);
printf("%s\n", r ? "true" : "false");
return 0;
}
Tất cả bài học trong Bảng băm, loạt cấu trúc dữ liệu #4
Tự luyện tập: Trình biên dịch C online