2010-07-29 44 views
6

Một vấn đề tôi đang cố gắng giải quyết: cho rằng bạn có hai chuỗi riêng biệt bao gồm các chữ thường từ a đến z, tìm một chuỗi giữa hai chuỗi sao cho có thể tìm thấy các chuỗi ở giữa.Thuật toán để tạo chuỗi chữ cái Theo thứ tự bảng chữ cái giữa hai chuỗi khác?

chi tiết bổ sung:

Cho rằng 'a' đến trước 'b' theo thứ tự abc, có một số lượng vô hạn các chuỗi giữa 'a' và 'b', khi được sắp xếp như một cuốn từ điển sẽ: 'aa', 'aaa', 'aaaa', 'ab', 'aba', v.v. Tuy nhiên, không có vô số chuỗi giữa tất cả các chuỗi - không có gì xuất hiện giữa 'a' và 'aa'. Hơn nữa, giữa 'a' và 'aaa' chỉ tồn tại một chuỗi giữa 'aa'.

Thuật toán có thể tìm thấy chuỗi X đi theo thứ tự bảng chữ cái giữa 'a' và 'b' cũng đáp ứng điều kiện là có vô số chuỗi giữa 'a' và X cũng như X và 'b '?

+0

Gợi ý: cũng có vô số các số (số thập phân) từ 1 đến 2. –

+0

@zenzen: chỉ cần một là miễn là đảm bảo hoạt động giả định đầu vào ban đầu đáp ứng điều kiện tồn tại một số vô hạn các chuỗi giữa chúng. –

Trả lời

4

giả định rằng người ta có thể chèn một số chuỗi vô hạn giữa hai chuỗi.

Nếu chuỗi thấp hơn ngắn hơn, hãy thêm bao nhiêu 'a để tạo độ dài bằng nhau rồi thêm' b 'vào chuỗi giữa. Nếu từ trên ngắn hơn làm cho chuỗi giữa bằng chuỗi thấp hơn và nối thêm z vào chuỗi giữa. Nếu hai chuỗi có độ dài bằng nhau, hãy sử dụng một trong hai phương thức.

+0

Có lẽ tôi đang thiếu một cái gì đó. Nếu các từ là 'ab' và 'b', thì từ ở giữa sẽ là gì? –

+0

Tôi đã sửa nó. gọi tốt. Xin lỗi – deinst

+0

Thuật toán này như được hiển thị khi tôi viết nhận xét này tạo ra một chuỗi lớn hơn B, không được phép. – Borealid

1

Bạn đã tuyên bố mọi thứ bạn cần biết để tìm giải pháp. Về cơ bản, một số chuỗi hữu hạn chỉ tồn tại nếu một chuỗi là tiền tố của chuỗi còn lại và chuỗi là "a" s.

Nếu không, bạn có thể tìm thấy vô số các chuỗi ở giữa.

Các vấn đề liên quan