Nén xâu

View as PDF

Submit solution


Points: 100 (partial)
Time limit: 1.0s
Scratch 5.0s
Memory limit: 256M
Input: stdin
Output: stdout

Author:
Problem type

Một xâu ký tự có thể nén lại thành một xâu mới bằng cách nén các ký tự giống nhau đứng cạnh nhau. Ví dụ trong xâu aaaa sẽ nén thành 4a. Hãy lập trình để nén một xâu ký tự thường theo cách trên.

Input

  • Một xâu các ký tự là chữ cái thường có tối đa 10^5 ký tự.

Output

  • Một xâu ký tự sau khi nén.

Example

Sample input

mmaabbbeeeezh

Sample output

2m2a3b4ezh

View comments (4)

Comments


  • 1
    khanhhunghack  commented on 7:56 a.m. 10 jan, 2022

    làm phiền daicadihoc tăng time cho scratch ạ.


  • -12
    thanhyl7a20  commented on 4:26 p.m. 12 oct, 2021

    This comment is hidden due to too much negative feedback. Click here to view it.


  • 8
    SPyofgame  commented on 7:10 p.m. 6 jun, 2020 edit 5

    Spoiler Alert


    Hint 1

    Duyệt qua xâu, và đếm số lượng kí tự bằng nhau liền nhau.

    Xuất kết quả và chuyển sang kí tự tiếp theo

    Notice

    Cẩn thận trường hợp chỉ có một kí tự đơn lẻ

    Reference AC code | O(n) time | O(1) auxiliary space | Online Solving

    for (char c = getchar(), p = c; c != EOF; p = c)
    {
        int cnt = 0;
        while (p == c) cnt++, c = getchar();
        if (cnt > 1) cout << cnt;
        cout << p;
    }