Nội dung Bài tập
Mã:
[DHLTNC_05]Z_Algorithm_1
Tên:
DHLTNC_Nhóm_5_Bài1
Dạng thi:
oi
Thang điểm:
10 điểm
Giới hạn thời gian:
1 giây
Giới hạn bộ nhớ:
256 MB
Được tạo bởi:
4801103003

Một công ty phát triển phần mềm đang quản lý các phiên bản khác nhau của một ứng dụng. Để dễ dàng theo dõi các tính năng cốt lõi, họ muốn xác định tiền tố chung dài nhất giữa phiên bản hiện tại và chính nó. Điều này giúp họ nhận biết phần đầu của mã nguồn có sự ổn định và ít thay đổi nhất.

Cho một chuỗi đại diện cho mã nguồn của phiên bản hiện tại của phần mềm. Hãy sử dụng thuật toán Z để tạo ra một mảng, trong đó mỗi phần tử tại vị trí i (bắt đầu từ 1) cho biết độ dài của đoạn mã bắt đầu từ vị trí i trùng khớp với phần đầu của mã nguồn (từ vị trí 0). Nếu không có tiền tố chung nào (ngoại trừ tiền tố độ dài 0 tại các vị trí khác 0), hãy xuất ra "No".

**Input:**

Dòng 1: Chuỗi mã nguồn của phiên bản hiện tại, không dấu.

**Output:**

Xuất ra một mảng các số nguyên cách nhau bởi khoảng trắng, trong đó phần tử thứ i (i bắt đầu từ 1) là độ dài của tiền tố chung giữa chuỗi bắt đầu từ vị trí i và chuỗi bắt đầu từ vị trí 0. Nếu không có tiền tố chung nào (ngoại trừ vị trí 0), hãy xuất ra "No".

**Cụ thể mời xem các ví dụ dưới đây:**

Ví dụ:

Input

Output

aaaa

3 2 1

Ví dụ:

Input

Output

abcab

0 0 2 0


    Quảng cáo
       Ngôn ngữ : 

       Theme : 
Mời bạn soạn code



		



      Ai có thể xem bài này : 

Thông tin



Phần thảo luận