242. Valid Anagram
June 24, 2025
04:32 AM
No headings found
Loading content...
No headings found
Problem
Để kiểm tra hai chuỗi có phải là anagram hay của nhau không, bạn cần đảm bảo rằng:
Approach 1 - Sắp xếp chuỗi và so sánh
Ưu điểm: Đơn giản, dễ hiểu.
Nhược điểm: Độ phức tạp O(n log n) do thao tác sắp xếp.
Approach 2 - Đếm tần suất ký tự (dùng object hoặc mảng đếm)
Ưu điểm: Độ phức tạp O(n), tối ưu hơn cách sắp xếp.
Nhược điểm: Cần thêm bộ nhớ cho bảng đếm.
Solution - Approach 2
1function isAnagram(s: string, t: string): boolean {
2 if (s.length !== t.length) return false;
3 const arr: number[] = Array(26).fill(0);
4 for (let i = 0; i < s.length; i++) {
5 arr[s.charCodeAt(i) - 97]++;
6 arr[t.charCodeAt(i) - 97]--;
7 }
8
9 return arr.every(ele => ele === 0);
10};