أقل مسافة بين السلاسل الفرعية المتكررة

Java Hard strings

مهمة «أقل مسافة بين السلاسل الفرعية المتكررة»

<div>
<p>يتم إعطاء سلسلة S تتكون من أحرف صغيرة من الأبجدية اللاتينية. يجب إيجاد الحد الأدنى للمسافة بين المؤشرات الأولية لسلسلتين فرعيتين متطابقتين غير متداخلتين بطول L، حيث L هو أقصى طول ممكن توجد له مثل هذه السلاسل الفرعية. إذا لم توجد سلاسل فرعية متطابقة غير متداخلة بطول L، يتم إخراج -1. المسافة هي الفرق بين المؤشر الأولي للسلسلة الفرعية الثانية والأولى. يجب ألا تتداخل السلاسل الفرعية (أي أن فتراتها لا تحتوي على أحرف مشتركة). القيود: طول السلسلة يصل إلى 10^5.</p>
</div>

تنسيق الإدخال

سطر واحد S، يتكون من أحرف صغيرة من الأبجدية اللاتينية (a-z). طول السطر يتراوح من 1 إلى 100000.

تنسيق الإخراج

<div dir="rtl">
<p>عدد صحيح واحد — الحد الأدنى للمسافة بين المؤشرات الابتدائية لسلسلتين فرعيتين متطابقتين غير متداخلتين بأقصى طول ممكن L، أو -1 إذا لم توجد مثل هذه السلاسل الفرعية.</p>
</div>

أمثلة

مثال 1

الإدخال
aababc
الإخراج
2

مثال 2

الإدخال
ababa
الإخراج
2

مثال 3

الإدخال
abcdefg
الإخراج
-1
main.java