【发布时间】:2019-05-26 02:03:08
【问题描述】:
在 Perl 中,我想从数组中删除所有元素,其中同一数组的另一个元素是所述元素的非空子字符串。
假设我有数组
@itemlist = ("abcde", "ab", "khi", "jklm");
在这种情况下,我希望删除元素 "abcde",因为 "ab" 是 "abcde" 的子字符串。
我可以制作数组的副本(也许作为哈希?),迭代它,尝试使用原始数组的每个元素进行索引并删除它,但必须有一个更优雅的方式,不是吗?
感谢您的帮助!
为了清晰起见,稍作编辑。
【问题讨论】:
-
这上面写满了家庭作业...
-
这不是家庭作业。有问题的项目应该作为搜索查询中其他项目的同义词,并且由于搜索算法显然会进行完整的子字符串搜索,因此我被要求删除由较短的同义词组成的每个同义词。
-
您希望处理多大的@itemlist?
-
我希望里面的物品不会超过 12-15 件。
-
您会认为
oba是foobar的子字符串吗?换句话说,“同义词”是否只是单词的开头,就像缩写一样?