Danh sách

Xóa các ký tự trùng nhau liền kề (Remove Adjacent Duplicates)

Dễ
Ngăn Xếp & Hàng Đợi (Stack & Queue) 800ms 128MB

Cho một chuỗi s gồm các chữ cái tiếng Anh in thường. Một thao tác xóa lặp là chọn hai chữ cái liền kề và bằng nhau rồi xóa chúng đi.

Lặp lại thao tác xóa cho đến khi không còn cặp ký tự trùng nhau liền kề nào và trả về chuỗi cuối cùng.

Ví dụ 1:

Input: s = "abbaca"
Output: "ca"
Giải thích: "abbaca" -> xóa "bb" thành "aaca" -> xóa "aa" thành "ca".
Định Dạng Đầu Vào (Input)
Một dòng chứa chuỗi s
Định Dạng Đầu Ra (Output)
Chuỗi sau khi đã xóa các ký tự trùng liền kề
Ràng Buộc (Constraints)
  • 1 <= s.length <= 10^5
Ví Dụ Kiểm Thử Mẫu
Ví dụ 1:
Input:
"abbaca"
Output:
"ca"
Giải thích: Triệt tiêu bb rồi aa
Ví dụ 2:
Input:
"azxxzy"
Output:
"ay"
Giải thích: Triệt tiêu xx rồi zz
Gợi ý được sắp xếp theo cấp độ tiến dần. Hãy mở từng gợi ý khi bạn thực sự cần thêm định hướng.

Kỹ thuật Stack O(n)

Duyệt qua từng ký tự: Nếu ký tự hiện tại trùng với đỉnh Stack thì pop ra (triệt tiêu cặp), ngược lại push vào Stack.

Vui lòng đăng nhập

Đăng nhập tài khoản học viên để xem lịch sử nộp bài của bạn.

Đăng nhập
Ctrl + Enter: Chạy thử
Dữ liệu đầu vào (Input):
"abbaca"
Kết quả kỳ vọng (Expected Output):
"ca"
Dữ liệu đầu vào (Input):
"azxxzy"
Kết quả kỳ vọng (Expected Output):
"ay"
Nhập STDIN của bạn (Mỗi dòng một tham số):

Bấm Chạy thử để kiểm tra các bộ test mẫu hoặc Nộp bài để chấm điểm chính thức.

Đang gửi mã và thực thi trên Sandbox Engine...
Nhấn Ctrl+Enter để chạy

vừa nâng cấp PRO khóa 1 phút trước   Tìm hiểu khóa học