Làm sao để đếm số ký tự khác nhau trong chuỗi

làm sao để kiểm tra trong 1 chuỗi có bao nhiêu ký tự khác nhau k tính chữ hoa và thường.
ví dụ : nhập: AbacdB. xuất:4

Theo mình : b1 là viết hoa or viết thường lại all ký tự trong chuỗi
b2 là sort nó
b3 là tạo một mảng mới rồi dùng vòng for
nếu s[ i ] != s[i - 1] thì cộng s[ i ] vào mảng mới tạo ra sau đó in ra
cái size của mảng mới là được .

Nếu chỉ là chữ thì bạn có thể chuyển tất cả kí tự thành chữ thường hoặc chữ hoa.
Sau đó bạn tạo 1 mảng đánh dấu nó rồi Duyệt theo chiều dài chuỗi cứ thấy kí tự nào chưa đánh dấu thì đếm tăng lên 1.
Nếu bạn nâng cao bài này lên đếm tất cả kí tự hoa thường và đặc biệt thì vẫn như thế được nhé.
Vì bảng mã ASCII cũng chỉ có 256 kí tự thôi :slight_smile:

1 Like

Bạn có thể làm thế này:

str = "AbacdB";
newStr = str.toLowerCase(); // convert to lowerCase
arr = [...new Set([...newStr])]; // convert String to unique Array
console.log(arr.length)

À dùng set thì đúng là đơn giản thật. Nhưng mình nghĩ bạn này mới học thì hướng dẫn cách cơ bản ban đầu :v

1 Like

Bảng tần suất thôi :smiley: A-Z thì or với a-z là được.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?