0
我有很多字符串集,並希望測試他們對子集的集合。我希望確定哪些集合包含所有的子字符串。是字符串集所有子字符串的另一組
set1 = {'A123', 'B234', 'C345'}
set2 = {'A123', 'F234', 'H345'}
substring_set1 = {'A', 'B'}
因此,像這樣的僞代碼:
all(substring_set1.areSubstrings(set1))
True
all(substring_set1.areSubstrings(set2)
False
或者這樣或許真的?
if all(x in v for v in set1 for x in substring_set1):
do stuff
我想我可以用for循環的數組去做,但我覺得可能有更乾淨的方法來做到這一點。有什麼建議麼?謝謝!
是否有一個原因,你的方法'all'不起作用?結果應該是「真」還是「假」? –
這些套件有多大?幼稚的方法適用於少量的字符串,但對於較大的字符串將會效率低下,因爲它需要O(N^2)次(最終將每個字符串與集合中的所有元素進行比較)。解決此問題的一個有效方法是使用後綴樹或後綴數組,但這些數據結構的實現相當複雜。你可能會找到一些提供它們的庫。 – Bakuriu