晚上好.我真的是初学者,我正在努力实现欧拉路径.这意味着有向图的每个边(不是顶点)只能使用一次.出于某种原因,即使在纸上,它也无法覆盖所有顶点.它似乎忽略了一半的顶点或者根本没有将它们添加到电路中.
预期结果是:
6->7->8->9->6->3->0->2->1->3->4
Run Code Online (Sandbox Code Playgroud)
不过,我得到的结果是:
6 6 6 6 6 6 6 7 7 7 7 7 7 7 8 8 8 8 8 8 8 9 9 9 9 9 9 9 3 3 3 3 3 3
Run Code Online (Sandbox Code Playgroud)
我所拥有的代码如下:
my %edges={'6'=>['3','7'],'8'=>['9'],'1'=>['3'],'0'=>['2'],'3'=>['0','4'], '7' =>['8'],'9'=>['6'],'2'=>['1']};
my $startvertex=6; #this i got from additional code
my $location=$startvertex;
my @stack = ($startvertex);
my @circuit = ();
while (@stack)
{
if (@{$edges{$location}}[0])
{
push @stack, $location;
my $newlocation=@{$edges{$location}}[0];
splice @{$edges{$location}},0,1;
$location=$newlocation;
}
else
{
push @circuit, …Run Code Online (Sandbox Code Playgroud) 我想生成一个字符串的每个可能的连续子字符串,包括单词的结尾/从单词(循环)字母组合开始.我在Python中找到了一个例子,但我所知道的唯一语言是perl(而且几乎没有,我是初学者).如果有人可以帮助我将代码翻译为perl或帮助我在perl中找到解决方案,我将非常感激.
代码如下:
aa='ABCD'
F=[]
B=[]
for j in range(1,len(aa)+1,1):
for i in range(0,len(aa),1):
A=str.split(((aa*j)[i:i+j]))
B=B+A
C=(B[0:len(aa)*len(aa)-len(aa)+1])
Run Code Online (Sandbox Code Playgroud)
它给你:
C = ['A','B','C','D','AB','BC','CD','DA','ABC','BCD','CDA','DAB' ,'ABCD']`