2013-02-05 204 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