Thread Eindeutige Liste aller Zeichen im String
(32 answers)
Opened by roli at 2008-03-11 18:39 Code (perl): (dl
)
1 2 3 4 5 6 sub arr2 { my $res = $string; my @seen; $res =~ s/(.)/$seen[ord($1)]++ ? "" : $1/gse; return $res; } Arrays sind schneller als Hashes, immerhin Platz 1 im Ranking bei laaaangen Strings. Code (perl): (dl
)
1 2 3 4 5 6 7 sub substr_tr { my $res=$string; my $out="\0"x256; $res =~ s/(.)/substr($out,ord($1),1,$1)/eg; $out =~ tr/\0//d; return $out; } nur (sub)String, auch nicht schneller erstaunlich langsam bei langen Strings, linearer Aufwand macht sich bemerkbar....dafür aber echt knapp hingeschrieben. RegEx Fanatiker können da bestimmt noch tunen... grübel ... auch nicht schneller: Code (perl): (dl
)
1 2 3 4 5 6 sub regex2 { $_=$string; my $out=""; $out.=$1 while ( m/(.)(?!.*\1)/g ); return $out; } TMTOWTDYOG (there's more than one way to dig your own grave)
|