我正在寫一個Perl腳本,作爲輸入字符串列表,與此類似:Perl腳本來壓縮字符串替換重複字符
AADDDDKPP PrRRRR
wwwwwwwwwwYY SSSSS SSSSGGGGGGGGGGGGGG
ZZZZZFZZQZZZZZZZZZZZZZ
應該substituite每次重複2次以上的字符連續跟隨char的重複次數。因此,與輸入上面顯示,該腳本應在輸出給這些字符串:
AA4DKPP Pr4R
10wYY 5S 4S14G
5ZFZZQ13Z
這裏的Perl腳本,我至今寫:
foreach my $line(@lines){
@letters=split("",$line);
@alreadyChecked=();
foreach my $letter(@letters){
$count=0;
if (grep {$letter} @alreadyChecked) {
next;
}
push(@alreadyChecked,$letter);
foreach my $index(@letters){
if($letter eq $index){
$count=$count+1;
} else {
@alreadyChecked=0;
last;
}
}
if($count>2){
@chops=split(/$letter+/,$line);
$line=$chops[0].$count.$letter.$chops[1];
}
}
}
我覺得有一個以上的缺陷在這個代碼,但無法找到位置。
你怎麼想輸入字符串的數字處理?你的例子不包括任何,所以也許沒有。但是澄清會有幫助。 – AdrianHHH
你爲什麼要這樣,特別是壓縮字符串? – ysth
@ysth這只是一個鍛鍊我在做我自己。 – Andrew