Hỏi về cách đếm số lần lặp lại kí tự

Ví dụ như user nhập: aaabbbaccb
thì sẽ output ra: 3a+3b+1a+2c+1b

Tạo một mảng ký tự rồi đếm thôi. Cái này có thể sử dụng cấu trúc hoặc hàm chuyển đổi cho việc xuất ra.

Ví dụ:

while(a[j]==a[i])
{
dem++;
}

1 Like

Bạn cho mình mấy dòng code được ko @@ mình có ý tưởng, nhưng không biết biểu diễn nó ra

bỏ dãy chữ user nhập vào 1 mảng ký tự, sau đó duyệt từng phần tử và so sánh, nếu phần tử 1 giống phần tử 2 thì tăng biến đếm lên, phần tử 2 giồng phần tử 3 thì tăng biến đếm lên.
cái đó là vòng for thứ nhất.

Mình không chắc vì chưa chạy thử

int i = 0;
	while (a[i] != NULL)
	{
		int dem = 0;
		int j = i;
		while (a[i] == a[j])
		{
			dem++;
                        j++;
		}
		cout << dem << a[i] << " + ";
		i = j;
	}
4 Likes

Bài này đơn giản, lần sau đặt câu hỏi nhớ đưa ra giải pháp của mình trước + tag thêm và cho biết ngôn ngữ lập trình gì.
Dưới đây là code java:

3 Likes

Cám ơn bạn. Mình viết bằng Lua

This post was flagged by the community and is temporarily hidden.

Mình đang học Lua á bạn

  • Tạo 1 mảng mới xong copy phần tử mảng cũ ra. tạo 1 biến đếm và gán bằng 0.
  • Lấy kí tự đầu so sánh với các kí tự còn lại nếu giống nhau thì cho biến đếm tăng lên 1, nếu khác thì qua kí tự tiếp theo, sau khi xong thì lấy ra kí tự đầu và biến đếm.
  • Tạo 1 mảng mới, mảng này sẽ chứa mảng cũ và không chứa các phần tử giống phần tử đầu ở mảng trên. Tạo biến đếm thứ 2 và gán bằng 0.
  • Công việc cứ tiếp tục như vậy cho tới khi mảng không còn chứa phần tử nào thì dừng lại.
  • Xuất ra các kí tự kèm theo biến đếm của chúng, (Mission complete!).
2 Likes

Ghê vậy…giàu sức tưởng tượng quá
Python code tạm:

Chạy thử:

3 Likes

hehe cám ơn mấy bạn nha

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