2013-02-05 165 views
0

我有两个字符串$ dna1和$ dna2。将两个字符串打印为串联,然后在串联字符串的末尾打印排列在其副本上的第二个字符串。例如,如果输入 字符串是AAAA和TTTT,打印:Perl中的字符串对齐/匹配对齐

AAAATTTT 
    TTTT 

这是一个自我锻炼的问题..不是作业,

我试着用指数 #在/ usr/bin中/ perl的-w

$a ='AAAAAAAAAATTTTTTTTT'; 
$b ='TTTTTTTTTT'; 
print $a,"\n"; 
print ''x index($a,$b),$b,"\n"; 

,但它无法正常工作需要。帮助请

+0

在您的文本中,您说输入是AAAA和TTTT。在你的代码中,你有AAAAAAAAAATTTTTTTTT和TTTTTTTTTTT。哪一个?它是否已经连接? – ikegami

+0

你的'$ a'字符串中有9个T,'$ b'字符串中有10个T. '$ a'中永远不会找到10个Ts。 – TLP

回答

2

开始通过检查什么index($a,$b)正在恢复。P也许你应该选择一个$b,这实际上是$a

然后意识到连接10个空字符串的实例是一个空字符串,而不是10个空格。

2

这是一个有趣的小练习。我这样做:

perl -lwe'$a="AAAA"; $b="TTTT"; $c = $a.$b; $i = index($c,$b) + length($b); 
      print $c; printf "%${i}s\n", $b;' 
AAAAAAATTTT 
     TTTT 

注意,一般来说,使用变量名$a通过$c是一个坏主意,只接受在这里,因为它是一个班轮。 $a$b也是与sort一起使用的保留变量名称。

+0

'$ i =长度($ c);'会更简单。打印'''x长度($ a)'空格会更简单。 – ikegami