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