LeetCode 1048

Xem dạng PDF

Gửi bài giải

Điểm: 999 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
Ada, Assembly, Awk, Brain****, C, C#, C++, COBOL, D, Dart, F#, Forth, Fortran, Go, Groovy, Haskell, Intercal, Java, JS, Kotlin, Lisp, Lua, ObjC, OCaml, Pascal, Perl, PHP, Pike, Prolog, PyPy, Python, Racket, Ruby, Rust, Scala, Scheme, Scratch, Sed, Swift, TCL, Turing, VB, Zig

Nhanbin, một người cực kỳ đam mê... biến hóa từ ngữ. Một ngày nọ, nó nghĩ ra một trò chơi: cho một danh sách các từ toàn là chữ cái thường (a-z), bạn phải nối các từ đó lại thành một chuỗi sao cho từ sau chỉ khác từ trước đúng 1 chữ cái, bằng cách thêm 1 chữ vào bất kỳ vị trí nào, nhưng không được xáo trộn thứ tự các chữ còn lại.

Ví dụ:

  • Từ a có thể lên level thành ab hoặc ba hoặc za, miễn là chỉ thêm 1 chữ cái vào bất kỳ đâu mà không thay đổi thứ tự ban đầu.
  • Nhưng từ abc không lên được cab vì đổi thứ tự là chịu chết.
  • Mỗi lần lên một từ mới như vậy, Nhanbin gọi đó là level-up.

Giờ nhiệm vụ của bạn là:

👉 Tìm chuỗi level-up dài nhất có thể trong danh sách các từ mà Nhanbin đưa.

~\texttt{Input}~

  • Dòng đầu tiên là một số nguyên n (~1 \leq n \leq 10 ^ 3~) — số lượng từ trong danh sách.

  • ~n~ dòng tiếp theo mỗi dòng chứa một từ chỉ gồm các chữ cái thường trong bảng chữ cái tiếng Anh (a–z), độ dài từ không vượt quá 16.

~\texttt{Output}~

  • Một dòng duy nhất là độ dài của chuỗi level-up dài nhất có thể tạo được từ danh sách các từ đã cho.

Sample Input 1

6
bda
a
b
bca
ba
bdca

Sample Output 1

4

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.