Một hoạt động đôi khi tôi làm khi tôi chán là viết một vài ký tự theo cặp. Sau đó tôi vẽ các đường (trên đỉnh không bao giờ bên dưới) để kết nối các ký tự này. Ví dụ tôi có thể viết và sau đó tôi sẽ vẽ các dòng như:
Hoặc tôi có thể viết
Khi tôi đã vẽ những đường này, tôi cố gắng vẽ các vòng khép kín xung quanh các đoạn để vòng lặp của tôi không cắt bất kỳ đường nào tôi vừa vẽ. Ví dụ, trong vòng đầu tiên, vòng lặp duy nhất chúng ta có thể vẽ là xung quanh toàn bộ, nhưng trong vòng thứ hai, chúng ta có thể vẽ một vòng lặp chỉ quanh s (hoặc mọi thứ khác)
Nếu chúng ta chơi xung quanh với điều này trong một thời gian, chúng ta sẽ thấy rằng một số chuỗi chỉ có thể được rút ra để các vòng khép kín chứa tất cả hoặc không có chữ cái nào (như ví dụ đầu tiên của chúng ta). Chúng tôi sẽ gọi các chuỗi như vậy chuỗi liên kết tốt.
Lưu ý rằng một số chuỗi có thể được rút ra theo nhiều cách. Ví dụ có thể được rút ra theo cả hai cách sau (và không bao gồm một phần ba):
Nếu một trong những cách này có thể được vẽ sao cho một vòng khép kín có thể được thực hiện để chứa một số ký tự mà không giao nhau với bất kỳ dòng nào, thì chuỗi đó không được liên kết tốt. (vì vậy không được liên kết tốt)
Bài tập
Nhiệm vụ của bạn là viết một chương trình để xác định các chuỗi được liên kết tốt. Đầu vào của bạn sẽ bao gồm một chuỗi trong đó mỗi ký tự xuất hiện một số lần chẵn và đầu ra của bạn phải là một trong hai giá trị nhất quán riêng biệt, một nếu các chuỗi được liên kết tốt và mặt khác.
Ngoài ra, chương trình của bạn phải có ý nghĩa chuỗi liên kết tốt
Mỗi nhân vật xuất hiện một số lần chẵn trong chương trình của bạn.
Nó sẽ tạo ra giá trị trung thực khi thông qua chính nó.
Chương trình của bạn sẽ có thể tạo đầu ra chính xác cho bất kỳ chuỗi nào bao gồm các ký tự từ ASCII có thể in hoặc chương trình của riêng bạn. Với mỗi nhân vật xuất hiện một số lần chẵn.
Câu trả lời sẽ được ghi điểm khi độ dài của chúng tính theo byte với ít byte hơn là điểm tốt hơn.
Dấu
Một chuỗi không được liên kết tốt nếu tồn tại một chuỗi con nghiêm ngặt không trống liên tục sao cho mỗi ký tự xuất hiện một số lần chẵn trong chuỗi con đó.
Các trường hợp thử nghiệm
abcbac -> True
abbcac -> False
bbbb -> False
abacbc -> True
abcbabcb -> True
abcbca -> False
there
.
abcbca -> False
.