给定硬盘上的1万亿个整数,找到最小的100万个整数.一次最多可以在内存中容纳100万个整数.
一种方法是,从1万亿中取出前100万个并对100万个整数进行排序并将其存储回硬盘中.通过这种方式对每组100万个整数进行排序并将其存储在硬盘中.现在,100万个整数的组合分类达1万亿.现在比较所有排序组的第一个元素,它们的最小值是1万亿的最小值.将其存储为内存中的第一个元素.接下来,从最小元素所在的组中取出第二个元素,然后使用所有其他组的第一个元素进行检查.以这种方式重复该过程,直到第一个100万被分类并存储在存储器中.
我缺少一种更优化的方法吗?
我试图在perl中运行后台进程.我创建了一个子进程,用于调用另一个perl脚本.我希望与这个子进程并行运行几行代码.子进程完成后.我想打印一行代码.
#!/usr/bin/perl
$|=1;
print "before the child process\n";
my $pid = fork();
if (defined $pid)
{
system("perl testing.pl");
}
print "before wait command\n";
wait();
print "after 20 secs of waiting\n";
Run Code Online (Sandbox Code Playgroud)
#!/usr/bin/perl
print "inside testing\n";
sleep(20);
Run Code Online (Sandbox Code Playgroud)
before the child process before wait command (should wait for 20 secs and then print) after 20 secs of waiting
考虑示例代码:
$VAR1 = {
'en' => {
'new' => {
'style' => 'defaultCaption',
'tts:fontStyle' => 'bold',
'id' => 'new'
},
'defaultCaption' => {
'tts:textAlign' => 'left',
'tts:fontWeight' => 'normal',
'tts:color' => 'white',
}
},
'es' => {
'defaultSpeaker' => {
'tts:textAlign' => 'left',
'tts:fontWeight' => 'normal',
},
'new' => {
'style' => 'defaultCaption',
'tts:fontStyle' => 'bold',
'id' => 'new'
},
'defaultCaption' => {
'tts:textAlign' => 'left',
'tts:fontWeight' => 'normal',
}
}
};
Run Code Online (Sandbox Code Playgroud)
我将它作为参考返回,返回\%hash
我怎么解除这个?
这个问题在接受采访时被问到了......
假设您的计算机正在从流中逐个读取字符(在结束之前您不知道流的长度).请注意,您只有一个存储空间字符(因此您无法将已读取的字符保存为强大的字符).当你读完之后,你应该以相同的概率从流中返回一个字符.
怎么解决这个问题?任何的想法??
任何方式来解决这个问题?
x配置文件/etc/nginx/ngnix.conf并没有发现任何问题.仍然无法看到css和javascript Gzip压缩.我的NGINX.conf条目如下 -
gzip on;
gzip_disable "msie6";
gzip_comp_level 6;
gzip_min_length 1100;
gzip_buffers 16 8k;
gzip_proxied any;
gzip_types text/plain text/css text/js text/xml text/javascript application/javascript application/x-javascript application/json application/xml application/xml+rss;
Run Code Online (Sandbox Code Playgroud) 它可以是XML或任何文本格式.一般来说如何grep Perl中的文本块?
<track type="ws">
<range>
<rangeStart>0</rangeStart>
<rangeEnd>146.912</rangeEnd>
<locationIndex>0</locationIndex>
<propertyIndex>0</propertyIndex>
</range>
</track>
<track type="ps" id="1">
<range>
<rangeStart>0</rangeStart>
<rangeEnd>146.912</rangeEnd>
<locationIndex>1</locationIndex>
<propertyIndex>1</propertyIndex>
</range>
</track>
Run Code Online (Sandbox Code Playgroud)
我想要type="ps"抓住并获得一切,直到</range>.
一种解决方案是打开文件,逐行读取,然后匹配块.
open(FH, "file.txt");
foreach $line (<FH>) {
if ($line =~ m/type="cc"(.*?)<\/range>/) {
print $1;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果没有逐行读取文件,是否有更优化的解决方案?
tags = {'stream', 'auth'}
tags['stream']= {}
tags["stream"]["path"]= ["/streams"]
tags['stream']['attribute']= ['id', 'secure', 'cpcode', 'format', 'event_pattern']
Run Code Online (Sandbox Code Playgroud)
上面的代码会抛出一个错误:
tags["stream"]= {}
TypeError: 'set' object does not support item assignment
Run Code Online (Sandbox Code Playgroud)
如何创建列表字典的字典?
我正在尝试使用正则表达式解析多行html文件.
HTML代码:
<td>Details</td></tr>
<tr class=d1>
<td>uss_vod_translator</td>
Run Code Online (Sandbox Code Playgroud)
正则表达式:
if ($line =~ m/Details<\/td>\s*<\/tr>\s*<tr\s*class=d1>\s*<td>(\w*)<\/td>/)
{
print "$1";
}
Run Code Online (Sandbox Code Playgroud)
我正在使用/s*(空格)多线,但它不起作用.我搜索过它,甚至用于/\?多线,但这也没有用.
任何人都可以建议我如何解析多行HTML?
我知道正则表达式解析HTML是一个糟糕的解决方案.但我有一个遗留的HTML代码,我需要解析,没有其他选择.
perl ×4
algorithm ×1
arrays ×1
background ×1
compression ×1
css ×1
dictionary ×1
django ×1
file ×1
fork ×1
grep ×1
hash ×1
html ×1
html-parsing ×1
javascript ×1
list ×1
multiline ×1
nginx ×1
python ×1
regex ×1
sleep ×1
sorting ×1
stream ×1
wait ×1