- 論壇徽章:
- 7
|
本帖最后由 rubyish 于 2016-11-01 04:39 編輯
maybe:
我們可以(用)毛(筆寫字。)
但是小孩什么時(shí)候(用)鉛(筆)可以(寫字。)
是否(有簡(jiǎn)潔的)方法(比較出兩個(gè)字符串中相同)的(部分?)
(有簡(jiǎn)潔的比較出兩個(gè)字符串中相同部分)的方法(?)
if so?
#!/usr/bin/perl
use 5.024;
use utf8;
binmode STDOUT, ':encoding(utf8)';
sub gimme {
for (@_) {
my ( $C, $I ) = @$_;
for my $i ( 0 .. $#$I ) {
$C->[ $I->[$i] ] .= ')'
if $I->[ $i - 1 ] - $I->[$i] != 1;
$C->[ $I->[$i] ] = '(' . $C->[ $I->[$i] ]
if $I->[$i] - $I->[ $i + 1 ] != 1;
}
say @$C;
}
}
sub two {
my ( $AB, $A, $B ) = @_;
my ( $I, $J ) = ( [], [] );
my ( $x, $y ) = ( ~~ @$A, ~~ @$B );
while ( $x and $y ) {
if ( $AB->[$y][$x] == $AB->[ $y - 1 ][$x] ) { --$y }
elsif ( $AB->[$y][$x] == $AB->[$y][ $x - 1 ] ) { --$x }
else {
push @$I, --$x;
push @$J, --$y;
}
}
[ $A, $I ], [ $B, $J ];
}
sub strings {
my ( $A, $B ) = map [ split '', $$_ ], @_;
my @AB = map [ (0) x ( @$A + 1 ) ], 0 .. @$B;
for my $y ( 0 .. $#$B ) {
for my $x ( 0 .. $#$A ) {
$AB[ $y + 1 ][ $x + 1 ] =
$A->[$x] eq $B->[$y] ? $AB[$y][$x] + 1
: $AB[ $y + 1 ][$x] > $AB[$y][ $x + 1 ] ? $AB[ $y + 1 ][$x]
: $AB[$y][ $x + 1 ];
}
}
\@AB, $A, $B;
}
my ( $A, $B ) = (
"我們可以用毛筆寫字。",
"但是小孩什么時(shí)候用鉛筆可以寫字。"
);
gimme two strings \$A, \$B;
( $A, $B ) = (
'是否有簡(jiǎn)潔的方法比較出兩個(gè)字符串中相同的部分?',
'有簡(jiǎn)潔的比較出兩個(gè)字符串中相同部分的方法?'
);
gimme two strings \$A, \$B;
|
評(píng)分
-
查看全部評(píng)分
|