펄, 32 + 32 = 64
문자열은 STDIN에서 예상됩니다. 출력은 STDOUT에 기록됩니다. 공백은 무시됩니다. 과제에 대한 나의 해석은 점수를 얻기 위해 프로그램을 스스로 실행할 수 있어야한다는 것입니다.
$/ = $,;
$_ = <>;
s x\sxxg;
$\ = length;
print s x[0-9a-z]xxgi,
' + ',
s x.xxg,
' = '
주석이 달린 골퍼
$/ = $,; # The input separator becomes undefined, because the default for $, is "undef"
$_ = <>; # now $_ takes the whole file (STDIN) instead of the first line
s x\sxxg; # $_ =~ s/\s//g;
# white space is removed from $_
$\ = length; # The number of the other characters are put into $\,
# which is automatically printed the end of "print".
print s x[0-9a-z]xxgi, # s/[0-9a-z]//gi
# Remove alphanumeric characters and return their count
' + ',
s x.xxg, # s/.//g
# Remove the remaining special characters and return their count.
# "." does not catch new lines, but we have already
# removed white spaces including new lines.
' = '
동일한 바이트 수로 여러 변형을 발견했습니다. 예 :
$/ = $x;
$_ = <>, s x\sxxg;
$\ = split $x;
print s x[\da-z]xxgi,
" + ",
s x.xxg,
' = '
예
질문의 예 :
echo 'http://stackexchange.com' | perl a.pl
20 + 4 = 24
자체적으로 실행 ( a.pl
) :
cat a.pl | perl a.pl
32 + 32 = 64
파일 크기는 104 바이트이므로 40 바이트는 공백으로 무시됩니다.
펄, 29 + 29 = 58
$_=<>;s x\sxxg;$\=length;print s x[0-9a-z]xxgi,' + ',s/.//g,' = '
문자열은 STDIN에서 예상되며 첫 번째 행으로 제한됩니다. 결과는 STDOUT에 인쇄됩니다. 공백은 무시됩니다.
언 골프
$_ = <>;
s x\sxxg; # same as s/\s//gx; removes white space;
$\ = length($_); # sum is automatically appended at the end of print
print sx[0-9a-z]xxgi, # same as s/[0-9a-z]//gi;
# the number of alphanumeric characters
' + ',
s/.//g, # the number of the remaining special characters
' = '
예
파일 a.pl
은 Perl 스크립트를 포함합니다.
질문의 예 :
echo 'http://stackexchange.com' | perl a.pl
20 + 4 = 24
자체적으로 실행 :
cat a.pl | perl a.pl
29 + 29 = 58
파일 크기 a.pl
는 65 바이트이므로 7 바이트는 공백으로 무시됩니다.
O.
,O?
및O!
다음 어떤 이 길이 사업을 잃을 가능성이 높습니다 물론 프로그램 I 쓰기가 ... 문자 클래스 제한을 충족합니다.