Tin học Rút gọn chuỗi (Python)

Asiak

Học sinh mới
Thành viên
25 Tháng mười 2022
9
4
6
19
Thanh Hóa
[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

Viết chương trình yêu cầu người dùng nhập vào một chuỗi, rút gọn chương trình theo quy tác: nếu n ký tự giống nhau liên tiếp thì chỉ in ra ký tự đó và kèm theo số
n (n >= 2), trường hợp n = 1 thì chỉ in ra ký tự không cần in ra con số
VD:
Input: aabbbcddabd
Output: a2b3cd2abd
 

MIT4893

Học sinh
Thành viên
8 Tháng mười một 2022
11
3
21
16
TP Hồ Chí Minh
Không gửi file .py được nên bạn chịu khó xem lời giải trong hình nhé, bài này mình dùng kỹ thuật "hai con trỏ" trong giải thuật nên có phần sẽ hơi khó hiểu. Nếu bạn không hiểu code chỗ nào thì reply mình
1667917435630.png
 
  • Like
Reactions: Asiak

Asiak

Học sinh mới
Thành viên
25 Tháng mười 2022
9
4
6
19
Thanh Hóa
Không gửi file .py được nên bạn chịu khó xem lời giải trong hình nhé, bài này mình dùng kỹ thuật "hai con trỏ" trong giải thuật nên có phần sẽ hơi khó hiểu. Nếu bạn không hiểu code chỗ nào thì reply mình
View attachment 220915
MIT4893Bạn cho mình hỏi cái left đấy là sao nhỉ, mình chưa hiểu đoạn gắn left lắm
 

MIT4893

Học sinh
Thành viên
8 Tháng mười một 2022
11
3
21
16
TP Hồ Chí Minh
Bạn cho mình hỏi cái left đấy là sao nhỉ, mình chưa hiểu đoạn gắn left lắm
Asiakmình dùng kĩ thuật hai con trỏ (two pointers), có gì bạn tham khảo thêm trên mạng. Ở đây, left thể hiện vị trí của ký tự giống nhau đầu tiên bên trái và right thể hiện vị trí của kí tự giống nhau cuối cùng bên phải. Khi hết đoạn thì mình cần "nhảy" left sang vị trí của right để bắt đầu đoạn kế tiếp
 

tragn_nhwgn

Học sinh mới
Thành viên
8 Tháng mười một 2022
1
0
1
20
Nam Định
Không gửi file .py được nên bạn chịu khó xem lời giải trong hình nhé, bài này mình dùng kỹ thuật "hai con trỏ" trong giải thuật nên có phần sẽ hơi khó hiểu. Nếu bạn không hiểu code chỗ nào thì reply mình
View attachment 220915
MIT4893Bạn oi mk chay code thì output là a2b3cd2ab chứ ko phải là a2b3cd2abd
 

pham.tuyen

Học sinh
Thành viên
12 Tháng ba 2020
31
24
21
15
pham-tuyen.github.io
Hà Giang
THCS LTT
bài này có thể dùng đếm phân phối, rồi sinh chuỗi kết quả theo dạng <chữ cái><số lần chữ cái đó xuất hiện, lưu trong biến đếm> với độ phức tạp thời gian O(n) và độ phức tạp không gian O(n + m) (m = 26)
 

MIT4893

Học sinh
Thành viên
8 Tháng mười một 2022
11
3
21
16
TP Hồ Chí Minh
bài này có thể dùng đếm phân phối, rồi sinh chuỗi kết quả theo dạng <chữ cái><số lần chữ cái đó xuất hiện, lưu trong biến đếm> với độ phức tạp thời gian O(n) và độ phức tạp không gian O(n + m) (m = 26)
anoymousvấn đề là cho nó xuất ra đúng theo trình tự của chuỗi có sẵn nha
 
Top Bottom