01/10/2018, 12:02

Câu lệnh s[a[i]-'a']++ có ý nghĩa gì?

s[a[i]-‘a’]++; mọi người cho e hỏi cái chỗ này với ạ

rogp10 viết 14:11 ngày 01/10/2018

Câu này để tính bảng tần suất. Nếu có kí tự nào khác ngoài ‘a’ - ‘z’ thì lỗi đấy.

Do ‘a’ - ‘z’ là một dải liên tục và thực chất đây là dải số tự nhiên liên tục (0x61, 0x62, …, 0x86 không thiếu số nào) nên ta chỉ cần trừ cho ‘a’ thôi.

Trần Hoàn viết 14:09 ngày 01/10/2018

'a' tức là 97 (Tra google bảng mã ASCII)
Giả sử i == 15, a[15] == 120 => a[i] - 'a' == 23
s[23]++ hay còn là
s[23] = s[23] + 1

rogp10 viết 14:16 ngày 01/10/2018

Nếu ra 33 được thì phải code lại vì reqs không đúng.

Trần Hoàn viết 14:03 ngày 01/10/2018

Nếu ra 33 được

Tính nhầm í mà

Khang Dam viết 14:04 ngày 01/10/2018

e cảm ơn a nhiều ạ:heart_eyes:

vn5chau.com viết 14:05 ngày 01/10/2018

a[15] sao lại bằng 120??? trả lời dùm e cái!

HK boy viết 14:03 ngày 01/10/2018

Anh ấy đang giả sử thôi bạn.

Thực ra mục đích sử dụng của câu lệnh này lại gắn với bài toán mà anh rogp10 đã nói ở trên.

Bài liên quan
0