TS10 Quảng Ninh - Nén xâu

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 600 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho một xâu gồm các chữ cái tiếng Anh thường. Hãy nén xâu này bằng cách thay thế mỗi đoạn gồm các ký tự giống nhau liên tiếp bằng:

  • Số lượng ký tự trong đoạn, theo sau là ký tự đó, nếu số lượng ký tự trong đoạn lớn hơn \(1\).
  • Chính ký tự đó, nếu số lượng ký tự trong đoạn bằng \(1\).

Nói cách khác, nếu một chữ cái xuất hiện liên tiếp nhiều lần, ta ghi số lần xuất hiện của nó rồi ghi chữ cái đó. Nếu chữ cái chỉ xuất hiện một lần, ta chỉ ghi chữ cái đó, không ghi số \(1\).

Input

  • Dòng đầu tiên chứa số nguyên \(n\) (\(1 \le n \le 10^5\)) là độ dài của xâu ban đầu.
  • Dòng thứ hai chứa xâu \(S\) gồm \(n\) chữ cái tiếng Anh thường.

Output

  • In ra một dòng duy nhất là xâu kết quả sau khi đã nén.

Example

Test 1

Input
12
aaaabbcddddd
Output
4a2bc5d
Note

Xâu được nhóm thành aaaa (\(4a\)), bb (\(2b\)), c, và ddddd (\(5d\)). Kết quả ghép lại là 4a2bc5d.

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.