Q
删除冗余阵列元素
4
A
回答
4
所以你说你想删除后缀已经存在的元素。那么我们可以将后缀问题转换为前缀问题。然后,我们可以使用有序数组前缀中的特征在字符串本身之前。然后我们删除字符串,如果前面的字符串是其前缀
my @array = qw(foo.com bar.net www.example.com example.com
abc.def.ghi.foo.bar.baz.qux foo.bar.baz.qux);
my @result = do {
my $p;
map scalar reverse, grep {
my $x = !defined $p || !m/^\Q$p/;
if($x) {
$p = $_;
$p .= '.' unless m/\.$/;
}
$x
} sort map scalar reverse, @array;
};
use 5.10.0;
say for @result;
0
开始,在主foreach
我们映射,到%seen
哈希,通用已经看到条目。
在#1
说到诀窍:我们知道,$k
是hostaname,所以我们检查它是否与www.
字符串开始,更好的:每个键(我的意思是每个$k
)被迫开始www.
。
近#2
我们可以使用其它的正则表达式来细化$k
值(装饰空间,删除结尾斜线或http://
等)
#!/usr/bin/perl -w
use warnings;
use strict;
my @hostnames = qw(foo.com bar.net www.example.com example.com);
my %seen =();
my @result =();
foreach my $k (@hostnames) {
$k = "www." . $k if not $k =~ /^www\./; #1
... #2
if (not $seen{$k}) {
push @result, $k;
$seen{$k} = 1;
}
}
结果是具有独特www.
启动主机名的数组:
www.foo.com
www.bar.net
www.example.com
+0
请看看澄清的问题,谢谢。 (它可能不限于'www.',可能是任何东西。) – user2064000
相关问题
- 1. 删除阵列中的冗余数据
- 2. 如何删除冗余阵列对象
- 3. 删除阵列中的冗余值
- 4. 删除冗余
- 5. MySQL ::消除表中的冗余元素?
- 6. SSIS删除管道中的冗余列
- 7. 如何删除tableviewer中的冗余列?
- 8. 删除冗余数据?
- 9. 删除冗余记录
- 10. 删除冗余数据
- 11. 如何使用java编程删除微阵列数据中的冗余元组?
- 12. 的Python 2.7〜删除列表中的冗余的元素,但保留顺序
- 13. 冗余元素序列化类时为XML叶元素属性
- 14. 如何删除元素,还移阵列
- 15. 从“完整”阵列中删除元素
- 16. 删除阵列内数组元素
- 17. 从阵列中删除元素
- 18. 从阵列中删除元素:MongoDB
- 19. 从阵列原型中删除元素
- 20. 删除无Array_Unique的阵列元素
- 21. PHP:从阵列中删除元素
- 22. Discord.js:从阵列中删除元素
- 23. 从阵列的jquery删除null元素
- 24. 从阵列matlab中删除元素
- 25. 遍历阵列删除元素时
- 26. 从阵列错误中删除元素
- 27. 比较2阵列和删除元素
- 28. 阵列不会删除所有元素
- 29. 删除阵列中的空白元素
- 30. Pymongo:从阵列中删除元素
非常聪明的解决方案。缺少边缘情况,其中一个条目是另一个条目的子字符串,但它们实际上没有关联。例如,foo.com和barfoo.com。通过添加以下行可轻松解决:'$ p = $ _ if $ x; $ p。='。'如果$ p!〜/\.$/;' – Miller