Menu
CoddyTech

Partition Labels

Trung bìnhTham lamBămpython iconjava iconcpp iconc iconjs icon+10

Bạn nhận được một chuỗi s gồm các chữ cái viết thường. Hãy chia chuỗi thành nhiều phần liên tiếp nhất có thể sao cho mỗi chữ cái chỉ xuất hiện trong một phần: nếu một chữ cái xuất hiện trong một phần, tất cả các lần xuất hiện của nó đều nằm trong phần đó. Trả về độ dài các phần theo thứ tự từ trái sang phải.

Hàm

partitionLabels(s: string) → integer-array
sstring
chuỗi cần cắt, chỉ dùng chữ cái thường
Trả vềinteger-array
độ dài của từng phần, từ trái sang phải

Ràng buộc

  • 1 ≤ s.length ≤ 5 × 104
  • s chỉ chứa các chữ cái tiếng Anh viết thường.
  • Các phần giữ nguyên thứ tự và ghép lại tạo thành toàn bộ s, vì vậy tổng độ dài của chúng bằng s.length.

Ví dụ

Đầu vào
s = "abacdcefe"
Đầu ra
[3, 3, 3]
Giải thích
Các chữ a nằm ở vị trí 0 và 2, các chữ c ở vị trí 3 và 5, còn các chữ e ở vị trí 6 và 8. Vì vậy, các điểm cắt nằm sau aba và cdc, và không phần nào có thể bị cắt thêm.
Đặt lại code
def partitionLabels(s):
    # Viết code ở đây

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

s = "abacdcefe"

Đầu ra mong đợi

[3, 3, 3]