- 求职 : 软件工程师
- 论坛徽章:
- 3
|
本帖最后由 104359176 于 2013-10-31 19:41 编辑
- #!perl
- use 5.016;
- use YAML qw(Dump);
- my @array = <DATA>;
- chomp @array;
- my @pattern_list = qw(
- X+$
- X+A
- X+B[^X]
- X+B$
- X+B(?<=X)
- X+C$
- X+C(?<=X)
- X+C[^X]$
- X+C[^X](?<=X)
- X+C[^X][^X]
- X+D$
- X+D[^X]$
- X+D[^X][^X]$
- X+D[^X](?<=X)
- X+D[^X][^X](?<=X)
- X+D[^X][^X][^X]
- );
- say Dump(zhuan_zhi(change_array(zhuan_zhi(change_array([@array])))));
- sub wu_ran {
- my $char_list = shift;
- foreach my $pat (@pattern_list) {
- # x equal X
- $char_list =~ s/($pat)/lc($1)/gei;
- }
- return $char_list;
- }
- sub change_wu_ran {
- my $char_list = shift;
- $char_list = wu_ran($char_list);
- $char_list = scalar reverse(wu_ran(scalar reverse($char_list)));
- return $char_list;
- }
- sub change_array {
- my $ref_array = shift;
- my @change_array = ();
- foreach my $char_list (@{$ref_array}) {
- my $change_char_list = change_wu_ran($char_list);
- push @change_array, $change_char_list;
- }
- return [ @change_array ];
- }
- sub zhuan_zhi {
- my $array = shift;
- my $zhuan_zhi = [];
- foreach my $char_list (values $array) {
- my $array_count = 0;
- foreach my $char (split //, $char_list) {
- $zhuan_zhi->[$array_count] .= $char;
- $array_count++;
- }
- }
- return $zhuan_zhi;
- }
- __DATA__
- ABDCDCDCAAXCXCDCCABABDCDCDCAABXBABDCDCDCAABBCDCCAXDBBXABDCDCDCAABBCDXCCA
- BBCDCCABBBABXCDCDCAABBCDXCCABBBBBABDCDCDCAABBCDCCAXBBBABCDAAAXBCDADCAXXX
- XABCDCDCAAXBBCCDCCABABDCDCDCAABXBABDABACCCAXCDCDCAABBCDCCABBBXABDCDCDCAA
- AACDCCAADCABDCDCDCAABXCDXCXABCDDBABDCDCDCAABBXBXCAABBBABCDAAAXBCDADCABBB
- ADCAAAAAXABCDCCCCCDCABXBBCCDCCABABDCDCDCAABXBABDABDCCCAXCDCDCAAAAABBCDCC
- XCCCAABDCAAXXAADCCCCCCAACCAAAAAAAAAXBBDCCXACDACDAAXCBBBBBBBAAABCADDCAAXC
- XABCDCDCAAXBBCCDCCABABDCDCDCAABXBABDABACCCAXCDCDCAABBCDCCABBBXABDCDCDCAA
复制代码 output:- ---
- - aBDCDCDCaaxCxcdcCABABDCDcDcAabxbaBDCDCDCAABbCdCcaxdbbxaBDCDCDcAAbbcdxcca
- - bBCDCCABbBabxcdcDCAAbbcdxccaBBbbBABDCDCDCAAbBcDcCaxbbbABCDAAaxbcDADCaxxx
- - xaBCDCDCaaxbbCCDCCABAbdCDCdCAabxbaBdABACCCaxcdcdCAaBBcDcCABbbxaBDCDCDcaa
- - aACDCCAAdCabdCDCDCAabxcDxCxaBCDDBABdCDCDCAAbbxBxcaaBBBAbCDAAaxbcDADCAbbB
- - aDCAAAAaxaBcDCCCCCDCabxbbCcDCCABABDcDCDCAabxbaBdABDCCCaxcdcDCaAAAABBCdcC
- - xcccAABDcAaxxaADCCCCCcaAcCaAAAAaAAaxbbdccxaCDACdAaxcbbBbBBBAAaBCADDCAaxc
- - xaBCDCDCaaxbbCCDCCABABDCDCdCAabxbaBdABACCcaxcdcdCAaBBCDcCABbbxaBDCDCDCaA
复制代码 |
|