Bize bir koleksiyon verildiğini varsayalım Teller, . Bu dizelerden herhangi birinin koleksiyondaki başka bir dizenin bir alt dizesi olup olmadığını bilmek istiyorum. Başka bir deyişle, aşağıdaki görev için bir algoritma istiyorum:
Giriş:
Çıktı: öyle ki bir alt dizesi ve veya böyle bir şey yoksa Hiçbiri var olmak
Bunun için etkili bir algoritma var mı?
"Alt dize" yi "önek" ile değiştirirsek, etkili bir algoritma vardır (dizeleri sıralayın, ardından bitişik dizeleri karşılaştırmak için doğrusal bir tarama yapın; sıralama alt dizelerin bitişik olmasını sağlayacaktır). Ancak, herhangi bir dizenin diğer dizelerin bir alt dizesi olup olmadığını test etmek daha zor görünmektedir. Saf bir algoritma tüm çiftleri tekrarlamaktır, ancak bu gerektirir substring testleri. Daha verimli bir algoritma var mı?
Sanırım bu "tüm çiftler alt dize testi" ya da bunun gibi bir şey diyebiliriz.
Nihai hedefim, koleksiyondaki başka bir şeyin alt dizesi olan her birini kaldırarak hiçbir dize, başka bir alt dize olmayacak şekilde koleksiyonu budamaktır.