お題6 Delete Blank Lines

入力された空行を削除して、のこりを表示する
http://golf.shinh.org/p.rb?delete+blank+lines

入力例

1

2

3

出力例

1
2
3

C (min 25bytes)

siso 08/11/21 107bytes

#include<stdio.h>
int main(){char s[256];while(0!=(fgets(s,256,stdin)))if(s!=10)fputs(s,stdout);return 0;}

スタンダード(手抜き)に書いてみた

Java (min 140)

masawaki 08/11/14 133bytes @narita

class d{static{try{for(int c,d=0;(c=System.in.read())!=-1;){if(!(c==d&&c==10))System.out.print((char)c);d=c;}}catch(Throwable t){}}}

これは・・・

Zauberer 08/11/19 136bytes gcj 4.3.0

class D{public static void main(String[]a)throws Exception{for(int c,t=0;(c=System.in.read())>0;)if(c!=t||t!=10)System.out.write(t=c);}}

gcjはstaticイニシャライザが使えない...

Perl (min 12bytes)

murachue 08/11/15 25bytes @narita

while(<>){print if !/^$/}

だめだこりゃ

kurohuku 08/11/23 19bytes @自宅

/^$/||print while<>

正規表現はmurachueのをパクった.サーセン.

kurohuku 08/11/23 17bytes @自宅

print grep/.+/,<>

空行が改行だけの行って意味ならOKのはず

sed

murachue 08/11/15 5bytes @narita

/^$/d

いや…sedだし…。

awk

kurohuku 08/11/21 2bytes @oss03

NF

haskell

masawaki 10/07/28 119bytes snow leopard

main=do
 c<-getContents
 t$lines c
t[]=putStr""
t n=u(head n)(tail n)
u""l=do
 putStr""
 t$l
u n l=do
 putStrLn n
 t$l

経験値不足な感じがおわかりいただけるだろうか。

masawaki 10/07/30 104bytes @ossc04

main=do{c<-getContents;putStr$u$map(f)(lines c)}
f""=""
f x=x
u(x:[])=x
u("":s)=u s
u(x:s)=x++"\n"++u s

ちょっとスマートになった。

masawaki 10/7/31 73bytes @ossc04

main=getContents>>=putStr.u.lines
u[x]=x
u("":s)=u s
u(x:s)=x++"\n"++u s

馬鹿な事をやっていたのをなくした。そして関数の適用方法を変えた。

  • HTML
  • PDF
RSS2.0 RSS1.0 Atom1.0