9ホールチャレンジ[終了]


65

9ホールチャレンジ

  • 難易度の異なる9コードゴルフチャレンジ。
  • 同じ言語を複数回使用した場合の罰則。
  • 質問は、パー、ホールチャンピオン、トロフィーの勝者で更新されます。

    これは私が何人かの友人と行ったコンペティションから来たもので、通常の形式ではありませんが、あなたが何人かがそれの異なるスピンに感謝することを願っています。以下の課題、ルール、トロフィー。

  1. グリーンウェイ(24)

    f(c:string, n:integer)
    nインスタンスを含む行を出力しますc

  2. 荒野のどこか(73)

    f(t:string, s:string, n:integer) -> i
    in inthインスタンスのインデックスは どこですか。st

  3. 夕食のカレー(6235)

    f(x:function, y: function) -> g どこをg呼び出す機能がありyn倍。nの戻り値はどこですかx

  4. 噴出(92)

    f(p:string) ファイルに書き込みp、ランダムな文字のランダムなサイズの長方形(ascii)で塗りつぶします。

  5. トレジャーハント(75)

    f(p:string, c:char) -> (x, y)pシンボルのグリッドを含む ファイルを読み取り、グリッド内のそのシンボルの最初のインスタンスの座標xy座標を返します。

  6. クワイ川の橋(179)

    f(l:list[int]) の差分ブリッジ図を印刷しlます。例えば[1,7,3,17,1]

     /+6\ /-4\ /+14\  /-16\
    1    7    3     17     1
    

    上記の数値のサイズに従ってスペースが作成されていることを確認してください。3桁の長い数字の場合、下の行の数字の間に4つのスペースが必要になります。

    キャッチ:どこかに、コードはズボンを綴る必要があります(少なくとも1つの非英数字区切り文字が必要です。例えば tr(ou,se)(rs)

  7. ゴルフをしていると時間が飛ぶ(1157)

    f(p:string) -> [h, m]p時針が1行で表され、分が2行で表されるアナログ時計のASCII表現を含む ファイルを読み取ります。時計に表示される時間と分という2つの要素を含むリストを出力します。片方の手だけが見える場合、両方がその位置を指していると仮定します。

    ハンドのすべての可能な組み合わせは次のとおりです。

    \ | /
     \|/
    --o--
     /|\
    / | \
    

    これらの位置は、それぞれ(12、1、3、5、6、7、9、11)です。時計の文字盤内の他のキャラクターはスペースであると仮定します。

  8. 木材!()

    f(p:string) -> b:boolean pは、asciiが組み込まれたファイルへのパスです。その下に空白のあるブロックが落ちます。(スラッシュを除きます。スラッシュは、向かい合った方向と反対の方向に安定したブロックがある場合にそのまま残ります)。建物が構造的に不可欠な場合はtrueを返し、そうでない場合はfalseを返します。空白以外のブロックはすべて、ソリッドであるとカウントされ、スラッシュ以外はすべて落ちます。

    構造的に安全

    ____
    |/\|
    |  |
    

    安心じゃない

    |__
      | 
      |
    

    安全なバージョン

    |__
    \\| 
      |
    
  9. 怠け者のニュース(218)

    f(s:string, r:string, p:string) Hacker Newsの上位20記事のタイトルを取得し、stoのすべてのインスタンスを変更してからr、新しいタイトルをhtmlファイルに書き込みますp。各タイトルはh1要素内に含まれます。

    出力されるファイルは次のようになります

    <h1>Some title</h1></h1>Some other title</h1>...etc

    キャッチ

    • HN APIを使用することはできません。
    • Regexは使用できません。
    • コードのどこにも山括弧を使用できません。

得点

  • 文字数は、正しくコンパイルおよび実行される関数の長さです。ただし、インポートを含む完全なコードを送信する必要があります。
  • 提出物の繰り返し言語ごとに+ 10%。(たとえば、3つのソリューションにRubyを使用している場合、最終スコアに1.2が乗算されます)。同じ言語カウントの異なるバージョンは、依然として同じ言語としてカウントされます。
  • パーは各ホールの平均スコアになります。
  • ソリューションを1つの回答で送信してください。
  • 総合スコアは、文字数+言語ペナルティであり、それを切り上げます。

トロフィー

  • ゴールドジャケット -(@Sprigyig -1290)最低総合スコア
  • シューター -(@Sprigyig -9)使用されるほとんどの言語
  • バンカー -すべてのホールでパースコアのほとんど
  • 平面上の蛇 -(@AsksAnyway -1727)単一のソリューションで最高のPythonキャラクターを送信
  • 良い部品 -(@AsksAnyway -255)単一のソリューションで最高のJS文字数
  • Shakey Steve-インターフェースを使用する最短のソリューション
  • あなたはここから来たものではありません -言語が最短のウィキペディアページを持つ最短のユニークな言語ソリューションです。
  • Happy Gilmoore -(@AsksAnyway -31)コードに「アリゲーター」という単語が含まれる最短のソリューション。
  • Unicycling Dwarf Magic -9件の提出ソースファイルのデフォルトの拡張子は、Oxford Dictionaryの単語の完全なアナグラムです。

トロフィーを獲得できるのは、9ホールすべてを完了した場合のみです。


提出

  1. @Sprigyig 1290
  2. @Firefly 1320
  3. @grc 1395
  4. トレバーM 1465
  5. @Cギアハート 1654
  6. @Guy Sirton 1719
  7. @AsksAnyway 4651

2
@アノートン<>
ダンプリンス

1
アナログ時計には各針に12の位置がありますが、8だけを教えてください。
ケビン

1
@DanPrince /位置を1時または2時のどちらに参照しますか?(および他のすべての対角線についても同様)
apnorton

1
@アノートン1 / 5、5 / 25、7 / 35、11 / 55
ダンプリンス

2
言語の異なるバージョンまたはフレーバーは、スコアリングの目的で「異なる」と見なされますか?例えば、Python 2 vs Python 3?Visual Basic vs VB.Net vs VBScript?CまたはC ++のようなスーパーセットまたはスーパーセットに近いものはどうですか?細心の注意を払って申し訳ありませんが、これコードゴルフです!:-)
ダレンストーン

回答:


11

スコア:4651

2907 + 60%のペナルティ

1. GolfScript-14文字

{*}:a;lligator

使用法:c n a"test" 3 a->testtesttest

星 ハッピーギルモア

2. Python-72文字

def f(t,s,n,p=-1):
 while n:p=t.find(s,p+1);n-=1 if p+1 else n
 return p

3. JavaScript-255文字

/*
Curry for Dinner

f(x:function, y: function) -> g Where g is a function that will call y, n times; where n is the return value of x
*/
function f(x, y) {
    var g = function() {
        var n = x();
        for (var i = 0; i < n; ++i) {
            y();
        }
    };
    return g;
}

星バンカー 星グッドパーツ

4. Python-132文字

from random import randrange as r
def f(p):l=range(r(9));open(p,'w').writelines([''.join([chr(r(94)+33)for _ in l])+'\n'for _ in l])

5. Python-89文字

def f(p,c):
 for y,d in enumerate(open(p).readlines()):
  x=d.find(c)
  if x+1:return x,y

6. Python-189文字

def f(l):
 for i in 0,1:
  for n,u in enumerate(l):
   o=l[n+1] if len(l)>n+1 else id 
   if i:print u,' '*4,
   elif o!=id:print' /'+('+' if o-u>0 else '')+str(o-u)+'sers'*0+'\\ ',
  print

7. Python-1727文字

def f(p):
    lines = open(p).read().split('\n')

    # preprocess lines to ensure correct format
    if len(lines) < 5:
        for i, line in enumerate(list(lines)):
            if 'o' in line:
                if i == 0:
                    lines.insert(0, ' ' * 5)
                    lines.insert(0, ' ' * 5)
                elif i == 1:
                    lines.insert(0, ' ' * 5)
        while len(lines) < 5:
            lines.append(' ' * 5)

    # find characters that can only be the hour hand
    for i, line in enumerate(lines):
        if i == 0:
            if '\\' in line:
               hour = 11
            elif '|' in line:
                hour = 12
            elif '/' in line:
                hour = 1
        elif i == 2:
            if '--o' in line:
                hour = 9
            elif 'o--' in line:
                hour = 3
        elif i == 4:
            if '/' in line:
               hour = 7
            elif '|' in line:
                hour = 6
            elif '\\' in line:
                hour = 5

    # find characters that might represent the minute hand
    possible_minutes = []
    for i, line in enumerate(lines):
        if i == 1:
            if '\\' in line:
                possible_minutes.append(55)
            if '|' in line:
                possible_minutes.append(0)
            if '/' in line:
                possible_minutes.append(5)
        elif i == 2:
            if '-o' in line:
                possible_minutes.append(45)
            if 'o-' in line:
                possible_minutes.append(15)
        elif i == 3:
            if '/' in line:
                possible_minutes.append(35)
            if '|' in line:
                possible_minutes.append(30)
            if '\\' in line:
                possible_minutes.append(25)

    HOUR_MINUTES = {
        12: 0,
        1: 5,
        3: 15,
        5: 25,
        6: 30,
        7: 35,
        9: 45,
        11: 55,
    }

    # remove minute hand that is actually hour hand
    if len(possible_minutes) > 1:
        not_minute = HOUR_MINUTES[hour]
        if not_minute in possible_minutes:
            possible_minutes.remove(not_minute)

    assert(len(possible_minutes) == 1)
    minute = possible_minutes[0]

    h, m = hour, minute          
    return [h, m]

星 平面上のヘビ

8. Python-226文字

def f(p):
 e=set;q,t=e(),True
 for l in open(p).readlines():
  r,b,q=e(q),e(),e()
  for i,c in enumerate(l):
   if c.strip():b.add(i);q.add(i-1 if c == '/' else i+1 if c == '\\' else i)
  if not r.issubset(b):t=False
 return t

9. Python-203文字

import urllib
def f(s,r,p):f,l,g=open(p,'w'),'\74','\76';[f.write(l+'h1'+g+t.replace(s,r)+'h1'+g)for i,t in enumerate(urllib.urlopen('http://x.co/3WYln').read().split('title'+g))if(i in range(2,42))&i%2]

コメント「#alligator」はコード#1と何の関係がありますか?何らかの理由で単語数に含まれているようです。
ダラ

1
@Dharaこれは、ハッピーギルモアトロフィー用です。「コードに「アリゲーター」という単語が含まれる最も短いソリューションです。」
PhiNotPi

#9は山括弧(i<i<42)を使用しますか、または演算子としてのみ使用する限り許可されますか?
クリストファー・クロイツィヒ

@ChristopherCreutzig感謝を修正しました。
AsksAnyway

7

スコア:1320

私はこのスコアを改善するためにやるべきことがたくさんあります...まあ、少なくとも私は繰り返される言語の罰を避けました。:-)

1. Python(21文字)

def f(c,n):print(c*n)

「明らかな」ソリューション。

2. ECMAScript 6(47文字)

f=(t,s,n)=>t.split(s).slice(0,n).join(s).length

その前の部分文字列の長さをカウントすることにより、ちょっと変わった方法でインデックスを見つけます。

3. J(12文字)

f=:2 :'v^:u'

組み込みの組み合わせ^:は、関数を累乗します(つまり、指定された回数だけ関数を繰り返します)。つまり、f^:3 y = f (f (f y)))。ただし、整数ではなく関数を受け入れるalosにオーバーロードされています。この場合、入力で関数を実行して繰り返し回数を取得します。残念ながら、タスクのオペランドを反転する必要があります。それ以外の場合は、簡潔な答えが得られf=:^:ます。

4. C(95文字)

#include <stdio.h>
#include <stdlib.h>

f(char*p){FILE*f=fopen(p,"a");for(int n=rand(),y=n*n;y--;y%n||putc(10,f))putc(rand()%94+32,f);}

このタスクには、解釈と悪用の余地がかなり残されています。ランダムに印刷可能なASCII文字を出力し、セット{1}の寸法を持つランダムな寸法の長方形だと言っても大丈夫ですか?おそらくない。とにかく、私はプレーンで行きましたrand()が、実際にはおそらく%9あなたがそれをテストしたい場合、または何かを追加したいと思います。私のLinuxボックスでは、ファイルを書き込むためにファイルをフラッシュする必要はありませんでしたが(プログラムの終了時に自動的にフラッシュされると思います)、標準に準拠するためにフラッシュする必要があると確信していますので、fflush(f);ここでカウントに追加できます。

5. Haskell(100文字)

import Control.Arrow
import Data.List
import Data.Tuple
import Control.Applicative

h p c=head.filter(p c.snd).zip[1..]
g c=swap.(id***fst.h(==)c).h elem c.lines
f p c=g c<$>readFile p

行と列を検索する間に繰り返されるパターンが好きです(抽象化h)。

6.ルア(261文字)

function f(s,m,y,...)if s and m then for i,v in pairs(m)do
io.write(v,(" "):rep(#tostring(s[i])))end print()elseif s then
r=unpack f(s,{"",f(trouse,r(s))})f({f(nil,r(s))},s)elseif y then
return ("/%s%d\\"):format(m<y and"+"or"-",math.abs(m-y)),f(s,y,...)end end

複数の戻り値と再帰を使用して、差異の計算に対処します。サンプル出力を正確に一致させるために数文字のコストがかかりました(すべての場所に適切なスペースを追加します)。

7. Go(307文字)

func f(p string)[]int{var l[]string
g,_:=os.Open(p)
H,M,s,m:=0,0,bufio.NewScanner(g),[][]int{{-1,-1,11},{-1,0,12},{-1,1,1},{0,-1,9},{0,1,3},{1,-1,7},{1,0,6},{1,1,5}}
for s.Scan(){l=append(l,s.Text())}
for _,a:=range m{if l[2+a[0]*2][2+a[1]*2]!=' '{M=a[2]}
if l[2+a[0]][2+a[1]]!=' '&&(H==0||M!=a[2]){H=a[2]}}
return[]int{H,M}}

おそらくもっと多くのゴルフができるでしょう。私はかろうじて知っています。

8. CoffeeScript(+ node.js)(223文字)

f=(p)->
 a=require('fs').readFileSync(p).toString().split "\n"
 U=(i,j)->a[i]?[j]and a[i][j]==' '
 for l,i in a
  for c,j in l
   m =
    "/":[i+1,j-1]
    "\\":[i+1,j+1]
    a:[i+1,j]
   return if U.apply(0,m[c]or m.a)
 1

私はすでにJSを持っているので、少し安上がりです。しかたがない。偽の値(つまり、undefined)または真実の値(つまり、1)を返し、答えを示します。

9.バッシュ(254文字)

f(){
curl https://news.ycombinator.com/rss|
awk -Ftitle '{OFS="h1\76\n\74h1";ORS="";print substr(OFS,4);print$2,$4,$6,$8,$10,$12,$14,$16,$18,$20,$22,$24,$26,$28,$30,$32,$34,$36,$38,$40;print substr(OFS,0,3)}'|
while read l;do echo ${l//$1/$2};done|
tee $3
}

(読みやすくするためにパイプの後に改行が追加されました。)シェルの制限を回避するのは楽しかったです。おそらくもっと良い方法があると思いますが$2,$4,$6,...、とにかくこれが思いつきました。


1
文字数にインポート/インクルードを含めなかった理由はありますか?そうでなければ、素晴らしい仕事です!
GRC

1
そうそう、私はそれを言及するのを忘れました。この質問では「関数を送信するだけでよい」と強調されているので、標準ライブラリを含めるコストを無視するのは公平だと考えていました。
ホタル

ホール1- f=str.__mul__
スネークとコーヒー

残念ながら、標準出力に出力しない@SnakesandCoffee。:(
FireFly 14年

5

スコア:1,394.4

996文字+ 40%のペナルティ

1. Greenway-Haskell、19文字

f c n=replicate n c

使用法:

> f "hello" 5
["hello","hello","hello","hello","hello"]

2.ラフ-PHP、72文字

<?
function f($t,$s,$n){for($i=-1;$n--;$i=strpos($t,$s,++$i));return$i;}

3.カレー-JavaScript 1.8、45文字

f=function(x,y)function(){for(i=x();i--;)y()}

4. Spew-J、43文字

f=:3 :'((33+?(1+?2#100)$1#93){a.)fwrites y'

使用法:

f 'file.txt'

5.トレジャー-J、64文字

f=:4 :0
a=.freads x
b=.1+a i.u:10
c=.a i.y
d=.<.c%b
e=.d,c-b*d
)

使用法:

'file.txt' f 'c'

6.ブリッジ-Python、166文字

def f(l):J=''.join;t=map;r=lambda n:' '*len(n);s=t(str,l);o=['/%+d\\'%(y-x)for x,y in zip(l,l[1:])];print J(t(J,zip(t(r,s),o)))+'\n'+J(t(J,zip(s,t(r,o)+['users'*0])))

7.時間-Python、205文字

def f(p):
 s=open(p).read();a=[s[:12],s[18:],s[11:15],s[15:18]];z=[0]*3
 for l in(0,1):
  for c in'/|\\':z[a[l].count(c)]=('|/'.find(c)+6*l)%12or 12
  z[a[2+l].count('-')]=3+6*l
 print[z[1]or z[2],z[2]*5%60]

行が5文字幅になるようにスペースが埋め込まれていると想定します。2番目のインデントレベルにタブを使用します。

8.木材-Python、190文字

def f(p):g=open(p).readlines();C='\\/ ';return all(1-[x+2>len(g[y])or g[y][x+1]in C,x<1or g[y][x-1]in C,0,' '==g[y+1][x]][C.find(g[y][x])]for y in range(len(g)-1)for x in range(len(g[y])-1))

9. Slacker-Python、192文字

import urllib
def f(s,r,p):F=open(p,'w');d=urllib.urlopen('http://x.co/3WYmQ').read()[37:];o,c='\x3c\x3e';exec"d=d[d.find(o+'t')+7:];F.write(o+'h1'+c+d[:d.find(o)].replace(s,r)+o+'/h1'+c);"*20

URL短縮サービスのアイデアを提供してくれたTyzoidに感謝します。


あなたのPythonに非常に感銘を受け、学ぶべき多くのトリック。
AsksAnyway

1
@AsksAnywayありがとう。まだ確認していない場合は、これを確認してください。
GRC

1
うーん、確かにあなたの(1)はJにいますよね?たぶん、見出し/サンプルの実行を更新するのを忘れたかもしれません。
FireFly

@FireFlyええ、私の間違い。スコアと使用法を更新しましたが、実際のソリューションを変更するのを忘れました。
GRC

4

編集:そのまま1290を送信すると思う:合計1290、言語の繰り返しはありません。

グリーンウェイ、C# 53

void g(string s,int n){while(n-->0)Console.Write(s);}

#1と#9で言語を交換することにしました。ここで数百人で合計30の価値があります。

Somewhere In The Rough、Python 59

簡単な問題でこのような良い言語を使い果たすべきではありませんでした。また、これはどの言語のindexOf関数ファミリーの一部ではないのですか?私はいつもこれが必要なようです...

def f(t,s,n):return sum(map(len,t.split(s))[:n+1])+n*len(s)

カレーディナー、Lisp 61

私は大学でその1週間以来Lispに触れていません。

(defun f (c g)(loop for i from 1 to(funcall c)do(funcall g)))

Spew、Bash / shellユーティリティ 102

私のbash-fooは、そもそもそれほど良いものではありませんでした。後でこれをいじります。ところで、より速く終了したい場合は、/ dev / urandomに切り替えてください。

f(){
c=$(($RANDOM%9+9))
for i in $(seq $c);do
echo `tr -cd [:print:]</dev/random|head -c$c`>>$1
done
}

トレジャーハント、C 113

おそらくCにやさしい問題の1つです。「2つの整数を返す」と解釈したのは、戻り値の配列ポインターを引数として取るためです。警告?何の警告?int *はFILE * = pと同じくらい良いです。

void f(int*p,int c,int*r){int*f,t;*r=r[1]=0;f=fopen(p,"r");while(c-(t=fgetc(f))){*r=t-'\n'?*r+1:0;r[1]+=*r?0:1;}

クワイ川の橋、Perl 207

これを書いている間に私はperlを学び始めました。(決して遅かったほうがましです!)正規表現のヒロイックを行いたいと思ったので、ブリッジの両方のレイヤーとして文字列を形成し、スペース置換を伴う正規表現を使用して2つの異なる行を形成します。

sub f{@trouse=0..$#_-1;foreach $i(@trouse){$r.=sprintf("%d/%+d\\",$_[$i],$_[$i+1]-$_[$i])}$r.=$_[$#_]."\n";print$r=~s/(^|\\)(\d+)(\/|$)/$1.' 'x length($2).$3/egr;print$r=~s/(\/[+-]\d+\\)/' 'x length($1)/egr}

あなたがゴルフをしているとき、Java 297 が時を刻む

java terseを作成するためにできることは、それだけです。各行が5スペース長になるように、クロックにスペースが埋め込まれていると想定しています。

public boolean p(int r,int m,String s){int c[]={1,1,0,-1,-1,-1,0,1};return s.charAt(6*c[(r+6)%8]*m+14+c[(r)%8]*m)!=' ';}
public int[]time(String c){int h=9,m=0,t[]={3,5,6,7,9,11,12,1};for(int i=0;i<8;i++)if(p(i,1,c))if(p(i,2,c))m=i;else h=i;if(h==9)h=m;m=(t[m]*5)%60;h=t[h];return new int[]{h,m};}

木材!Javascript 201

Chromeのコンソールで実行されます。他の場所での保証はありません= p。行は、最も長い行の長さまでスペースが埋め込まれる必要があります。これはASCIIアートの合理的な要求だと思います。

function f(s) {s=s.split("\n")
d={};m={'/':-1,'\\':1};r=1
s.forEach(function(x){t={}
for(i=0;i<x.length;i++){if(x[i]!=' '){j=m[x[i]]?i+m[x[i]]:i
t[j]=1}}for(n in d){if(x[n]==' '){r=0}}d = t})
return r}

Slacker News、Ruby 197

def s(f,s,t)
l=60.chr
r=62.chr
IO.write(f,l+"h1"+r+URI.parse("https://news.ycombinator.com").read().split('mhead')[0,20].map{|x|x[0,x.length-19].split(r).last.sub(s,t)}.join(l+"/h1#{r+l}h1"+r))
end

これは素晴らしい答えであるだけでなく、素晴らしい読み物にもなります。よくやった!
ダンプリンス

おかげで、ルビーとC#を入れ替えたのは今では少し面白くないと思います。.Netの非常識な文字列分割で
暴言は

4

いくつかの言語に少し触れて楽しかった...

不要なスペース/改行を削除した後に取得された文字カウントですが、ほとんどの場合、読みやすくなっています。質問は関数とプログラムの混合であるため、必要な場合は関数の本体のみを含めました...また、「戻り」の意味とは何かの自由を取りました...

合計〜1719

1- Python(〜20)

def f(c, n):
    print c*n

2- C(〜109)

int f(char*t,char*s,int n){int i;char*q=t;int l=strlen(s);for(i=0;i<n;++i){t=strstr(t, s)+l;}return(t-q-l);}

読み取り可能なバージョン:

#include <string.h>

int f(const char *t, const char *s, int n)
{
  int i;
  char *start = t;
  int l = strlen(s);
  for(i = 0; i < n; ++i)
  {
    t = strstr(t, s) + l;
  }
  return(t - start - l);
}

3- Javascript〜56

function(x, y) {return function() {for(i=0; i<x(); i++) y();}}

4- Rexx(〜136)

f: Procedure
  Parse arg p
  w = random(1, 9)
  h = random(1, 9)
  Do y = 1 to h
    Do x = 1 to w
      Call CHAROUT p, d2c(random(32, 99))
    End
    Call LINEOUT p, ""
  End

5- Scala(〜290)

def f(p: String, c: Char) {
  def sc(w: String, c: Char, x: Int, y:Int ): Boolean =
    {
      if(w.isEmpty) false else
      if(w.head==c) {println(x, y); true} else sc(w.tail, c, x+1, y)
    }
  def sr(w: Array[String], c: Char, x: Int, y: Int)
  {
    if(!sc(w.head, c, 0, y)) sr(w.tail, c, 0, y+1)
  }
  sr(io.Source.fromFile(p).mkString.split('\n'), c, 0, 0)
}

6- C ++(〜355)

void b(list<int> l) // trouser+s
{
  auto i = l.begin();
  auto j = i;
  j++;
  list<int> d;
  while(j!=s.end()) d.push_back(*j++ - *i++);
  j = d.begin();
  ostringstream o[2];
  for(auto i : l)
  {
    while(o[0].tellp()!=o[1].tellp()) o[1] << " ";
    o[1] << i;
    if(j != d.end())
    {
      while(o[0].tellp()!=o[1].tellp()) o[0] << " ";
      o[0] << "/" << (*j>=0 ? "+" : "") << *j++ << "\\";
    }
  }
  cout << o[0].str() << endl << o[1].str() << endl;
}

7-囲Go(〜301)

これにはクロックをパディングする必要があることに注意してください(つまり、すべてのラインは同じ長さです)。

func f(p string)(h int,m int) {
  var a=[8]int {0, 2, 4, 12, 16, 24, 26, 28}
  var b=[8]int {7, 8, 9, 13, 15, 19, 20, 21}
  var d=[8]int {11, 12, 1, 9, 3, 7, 6, 5}
  h=9
  c, e := ioutil.ReadFile(p)
  if e==nil {
    for i:=range a {
      if c[a[i]]>32 {
        m=i
      }
    }
    for i:= range b {
      if c[b[i]]>32 {
        if i!=m {
          h=i
        }
      }
    }
    if h==9 {
      h=m
    }
    h=d[h]
    m=d[m]*5%60
  }
  return
}

8- ルビー(〜259)

def f(p)
  a,b = File.read(p).split(/\n/).reverse,Hash.new(1)
  a.each_with_index {
    |l,i|
    l.split("").each_with_index {|k,j|
      case k
        when ' '
          b[j] = 0
        when '/'
          b[j] = b[j]|b[j-1]
        when '\\'
           b[j] = b[j]|b[j+1]
      end
      unless k==' '
        if b[j]==0
          return 0
        end
      end
    }
  }
  return 1
end

9- bash / Unixハック(〜193)

wget -qO - http://news.ycombinator.com/rss | tr "\074\076" "\n" | grep -B1 /title | awk 'NR % 3 == 1' | head -21 | tail -20 | sed 's/$1/$2/' | awk '{ print "\074h1\076" $0 "\074/h1\076"}' > $3

1
いいですが、#9は山括弧を使用していますが、これはその穴のルールに反しています。
リックスミス-ウンナ

@RichardSmith:ありがとう...私はそれを修正しなければなりません。
ガイサートン

1
ホール3に注意してください。x()が各関数呼び出しで同じ数を返すという保証はありません!
タイゾイド

@Tyzoid:キャプチャすることを検討していました...あなたは正しいと思いますが、それは仕様の私の仮定/解釈です。
ガイ・サートン

2

本当にゴルフのためにここにいるわけではありませんが、言語にはもっと多くの愛が必要なので、Tclがあります

set holes {
    greenway
    rough
    curry
    spew
    hunt
    bridge
    time
    timber
    slacker
}

proc greenway {c n} {
    puts [string repeat $c $n]
}

proc rough {t s n} {
    set i [string first $s $t] ;# a bit wet
    while {[incr n -1]} {
        incr i [string first $s $t $i]
    }
    return $i
}

proc curry {x y} {
    set n [uplevel 1 $x]
    set body [string repeat "$y;" $n]
    return [list apply [list args $body]]
}

proc spew {p} {
    set w [expr {int(rand()*80)}]
    set h [expr {int(rand()*80)}]
    set f [open $p w]
    for {set y 0} {$y<$h} {incr y} {
        set ln ""
        for {set x 0} {$x<$h} {incr x} {
            append ln [format %c [expr {int(rand()*96+32)}]]
        }
        puts $f $ln
    }
    close $f
}

proc hunt {p c} {
    set f [open $p r]
    set y 0
    while {[gets $f line]>=0} {
        set x [string first $f $c]
        if {$x != -1} {
            return [list $x $y]
        }
        incr y
    }
}

proc bridge {l} {
    set l [lassign $l m]
    set top ""
    set btm $m
    foreach n $l {
        set t "/[expr {$n>$m?"+":""}][expr {$n-$m}]\\"
        append top "[string repeat \  [string length $m]]$t"
        append btm "[string repeat \  [string length $t]]$n"
        set m $n
    }
    # trousers
    return $top\n$btm
}

proc time {p} {
    set f [open $p r]
    while {[gets $f line] >= 0} {
        set line [format %-.5s $line]
        lappend c [split $line {}]
    }
    close $f
    foreach {x y h} {
        -1 -1  0
         0 -1  1
         1 -1  3
         1  0  5
         1  1  6
         0  1  7
        -1  1  9
        -1  0 11
    } { 
        set 2x x; incr 2x $x
        set 2y y; incr 2y $y
        if {[lindex $c $2y $2x] != " "} {
            set hh $h
        } elseif {[lindex $c $y $x] != " "} {
            set mm $h
        }
    }
    if {![info exists $mm]} {
        set mm $hh
    }
    set mm [expr {$mm*5}]
    if {$hh == 0} {set hh 12}
    list $hh $mm
}

proc timber {p} {
    set f [open $p r]
    set must {}
    while {[gets $f line] >= 0} {
        set line [format %-.5s $line]
        foreach i $must {
            if {[string index $line $must] eq " "} {
                close $f
                return false
            }
        }
        set must {}
        set i 0
        foreach c [split $line] {
            switch $c {
                "\\" {lappend must [expr {$i+1}]}
                "/"  {lappend must [expr {$i-1}]}
                " "  { }
                default  {lappend $must $i}
            }
            incr i
        }
    }
    close $f
    return true
}

proc slacker {s r p} {
    package require tdom
    set f [open $p w]
    set h [::http::geturl https://news.ycombinator.com/]
    set html [string trim [::http::data $h]]
    ::http::cleanup $h
    set dom [dom parse $html]
    lappend map , [string index $html 0]
    lappend map . [string index $html end]
    set root [$dom documentElement]
    foreach n [$root selectNodes {//td[@class=title]/a}] {
        set x [$n text]
        set x [string map [list $s $r] $x]
        puts $f [string map $map ",h1.$x,/h1."]
    }
    close $f
}

これらのプロシージャを30分で記述することは、ゴルフコードを適切に設計することよりもはるかに興味深いため、ほとんどテストされていません。楽しい!


2

これらの半分で作業する時間しかありませんでした。ライナーではなく、関数の形でそれらが必要なようです。したがって、これらはすべて関数です。関数の下のテストコード。Perlで。

緑化:

sub f{print$_[0]x$_[1]}

#test
&f("abc",5);

ラフ:

sub f{$i=-1;$n=$_[2];do{$i=index$_[0],$_[1],$i+1;$n--}while($n>0 && $i>-1);print$i+1}

#test
&f("abcefgacefgabcefgabcefgabcefg","cef",4);

カレー:

use Sub::Curried;
curry f($x,$y){$q=0;foreach(1..&$x){$q=&$y};return $q;}

#test
sub fy { return 1;}
sub fx { return 10;}
print&f(\&fx,\&fy);

吐く:

use Crypt::PRNG qw(random_string_from irand);
sub f{open($o,">$_[0]");$m=(irand)%10+1;map{printf $o "%s\n",random_string_from(['A'..'z'],$m)}(1..$m)}

#test
&f('/tmp/t');

宝:

sub f{open($i,"<$_[0]");$x=$y=0;@l=<$i>;while($y<=$#l){$x=1+index$l[$#l-$y],$_[1];@a=($x,$y+1)if($x);$y++;}return\@a}

#test
@b=@{&f('/tmp/t','f')};
print join(",",@b);

明日は6-9に取り組みます。


2

WIP。注意、文字カウントが起因してずれることがあります'\n'し、wc

[1 Greenway] Mindf * ck、54文字

>>+[+>,-]<[<]>,<<++++++++[>>------<<-]>>[>[.>]<[<]>-]

使用法:コードが記述されたら、文字列を入力し、^ a(ctr + a)で文字列を終了し、その後すぐに番号を入力します。

1つの注意:指定する数値は0から9のみにする必要があります(より大きな数値が必要な場合は、入力した文字のASCII値48が使用されますn

スクリーンショット:

スクリーンショット

[3カレーディナー] Javascript、59文字

function f(x,y){return function(){n=x();while(--n!=0)y();}}

[4 Spew] BASH、56文字

f(){ dd if=/dev/urandom of="$1" count=$((RANDOM%30+2));}

[ゴルフをしているときに7つの時間は飛ぶ] C、334文字(マクロ定義で412)

#define E(A) else if(s[A]==
#define G(A) else if(A)m=
#define M(A) &&m!=A)h=A
int (*f(char* s)){short h=0,m=0;if(s[0]=='\\')m=11;G(s[2]=='|')12;G(s[4]='/')1;G(s[11]=='-')9;G(s[15]=='-')3;G(s[22]=='/')7;G(s[24]=='|')6;G(s[26]=='\\')5;if(s[7]=='\\'M(11);E(8)'|'M(12);E(9)'/'M(1);E(12)'-'    M(9);E(14)'-'M(3);E(18)'/'M(7);E(19)'|'M(6);E(20)'\\'M(5);int* i=malloc(sizeof(int)*2);i[0]=(h==0)?m:h;i[1]=m*5;return i;}

注:この関数は、次のような形式の2次元整数配列へのポインターを返します。{3、55}(3時の時の位置、11時の分)

[9 Slacker News] PHP、246文字

function f($a,$b,$c){$t=file_get_contents("http://x.co/3WQoY");$g=explode('d class="t',$t);$f=fopen($c,"w");for($i=1;++$i!=count($g)-10;){$e=explode("\x3e",$g[$i]);fwrite($f,"\x3ch1\x3e".str_replace($a,$b,s    ubstr($e[2],0,-3))."\x3c/h1\x3e\n");}}

BASH + AWKでの個別/オリジナル実装、218文字

f(){ wget -qO- x.co/3WQoY|grep "e_"|awk '{n=split($0,a,"d class=\"t");for(q=1;++q!=n-10;){split(a[q],b,"\x3e");m=substr(b[3],0,index(b[3],"\x3c/")-1);gsub("'"$1\",\"$2"'",m);print "\x3ch1\x3e"m"\x3c/h1\x3e"    }}'>"$3";};

2

1654

1.グリーンウェイ(Haskell-37)

f x y=do print(concat(replicate x y))

2.荒野のどこか(Mathematica-43)

f[t_,s_,n_]:=StringPosition[t, s][[n+1, 1]]

3.夕食のカレー(Lisp-58)

(defun f(x y)(lambda()(dotimes(c(funcall x))(funcall y))))

4.スピュー(Matlab / Octave-83)

function x(f)
    save f arrayfun(@char,randi(255,randi(255),randi(255)))
endfunction

5.トレジャーハント(C-176)

char* f(char* s,char c){FILE* n;char* r;int i=0,j=0,k=0;n=fopen(s,"r");while(!feof(n)){k=fgetc(n);if(k==(int)c)break;j++;if(k=='\n'){i++;j=0;}}sprintf(r,"%d %d",i,j);return r;}

6.クワイ川の橋(ルビー-192)

def f(l)
    trouse="\n%s"
    rs = l[0].to_s
    for i in 1..l.length-1
        s = "/%+d\\"%(l[i]-l[i-1])
        print " "*l[i-1].to_s().length+s
        rs += " "*s.length+"%d"%l[i]
    end
    puts trouse%rs
end

7.ゴルフをしていると時間が経過する(Node.js-406)

function f(n){var g,h,m,q;fs.readFile(n,'ascii',function(e,d){l=d.split('\n');g=function(x,y){try{return l[x][y].trim()&&1;}catch(e){return 0;}};h=g(0,0)*11||g(0,2)*12||g(0,4)*1||g(2,0)*9||g(2,4)*3||g(4,0)*7||g(4,2)*6||g(4,4)*5;m=(g(1,1)&&h!=11)*55||(g(1,2)&&h!=12)*0||(g(1,3)&&h!=1)*5||(g(2,1)&&h!=9)*45||(g(2,3)&&h!=3)*15||(g(3,1)&&h!=7)*35||(g(3,2)&&h!=6)*30||(g(3,3)&&h!=5)*25||h*5%60;return [h,m];});}

8.木材!(ゴー-329)

func f(p string)bool{
    x,_:=ioutil.ReadFile(p)
    b:=strings.Split(string(x),"\n")
    for j:=0;j<len(b)-2;j++{
        for i:=0;i<len(b[j]);i++{
            r,o:=1,0
            switch string(b[j][i]){
            case " ": continue
            case "/": r,o=0,-1
            case "\\": r,o=0,1
            }
            if i+o<len(b[j]) && b[j+r][i+o]==' ' {
                return false
            }
        }
    }
    return true
}

9. Slacker News(Python-330)

def f(s,r,p):
    w=urllib2.urlopen('http://news.ycombinator.com')
    a=[l.get_text() for l in BS(w).body("a") if l.find_parent("td", class_="title")]
    t=lambda x:u"\x3c{}\x3e{}\x3c/{}\x3e".format(x,'{}',x)
    m=''.join(t("h1").format(l.replace(s,r)) for l in a[:20])
    with open(p,'w') as h:
        h.write(t("html").format(m).encode('utf8'))

1

私は詐欺師です。9ホールすべてをプレイしていません。それにもかかわらず、ここに私の穴8、Perlの「Timber」ソリューション(149文字)があります。

私の同僚の1人が、これを職場での挑戦として挙げました。私はこれまで楽しんでいますが、特に私は、これまでで最も低いパーソリューションを持っているからです!

私たちのルールは、それを出力するtruefalse、に改行をSTDOUT続けるスタンドアロンスクリプトである必要があり、「シェバン」は問題ないことでした。

以下は「縮小」ソリューションです。また、「縮小」されていないコードと、アプローチの背後にある推論の(しばしば曲がりくねって長い)説明を含む、同じ「要点」を作成しました。


$r=tru;open F,pop;while(<F>){y/0/6/;s/^|\s|$/0/g;s#\\(?=0)|(?<=0)/|[^\\/0]#6#g;@n=split//;for(0..@n){!$n[$_]&&$l[$_]==6?$r=fals:1}@l=@n;}print$r,'e
'

0

私は競争のルールに従って変更するのが面倒すぎますが、それはうまく動作します...

from numpy import *
import sys

def greenway(c,n):
    print c*n

def somewhereintherough(t,s,n):
    i=-1
    count=0
    while(count<n):
        i = t.find(s,i+1)
        count+=1
    return i

def curryfordinner(x,y):
    def g():
        for i in range(x()):
            y()
    return g

def spew(p):
    f = open(p,'w')
    n = random.randint(1,28)  
    for i in range(n):
        if(i>0):
            f.write('\n')
        str1 = ''.join([chr(random.randint(32,126)) for _ in range(n)])
        f.writelines(str1)
    f.close()
    print "Grid size: ",n,'x',n

def treasurehunt(p,c):
    f = open(p,'r')    
    arr = f.readlines()
    n = len(arr)
    f.close()
    f = open(p,'r')
    found=False
    for i in range(n):
        line = f.readline()
        #print line
        loc = line.find(c)
        if(loc!=-1):
            print c,"found in",p,"at",i,loc
            found=True
            break
    if(not found):
        print c,"not in",p
    f.close()

def bridgeontheriverkwai(l):
    str_list = []
    for i in range(len(l)-1):
        sign = '+' if l[i+1]-l[i]>0 else '-'
        str_1 = '/'+sign+str(abs(l[i+1]-l[i]))+'\\'
        sys.stdout.write(' '*(len(str(l[i])))+str_1)
        str_list.append(str_1)
    print
    for i in range(len(l)):
        if i<len(l)-1:
            print str(l[i])+' '*(len(str_list[i])-1),
        else:
            print l[i]

def timeflieswhenyoureplayinggolf(p):
    f = open(p,'r')
    #clock = [[0]*5,[0]*5,[0]*5,[0]*5,[0]*5]
    line1 = f.readline()
    line2 = f.readline()
    line3 = f.readline()
    line4 = f.readline()
    line5 = f.readline()
    h = 0
    m = 0
    if line1.find('\\')!=-1:
        h = 11
        m = 55
    elif line1.find('|')!=-1:
        h = 12
        m = 0
    elif line1.find('/')!=-1:
        h = 1
        m = 5
    elif line5.find('/')!=-1:
        h = 7
        m = 35
    elif line5.find('|')!=-1:
        h = 6
        m = 30
    elif line5.find('\\')!=-1:
        h = 5
        m = 25
    elif line3[4]=='-':
        h = 3
        m = 15
    elif line3[0]=='-':
        h = 9
        m = 45

    if line2[1]=='\\' and h!=11:
        m = 55
    elif line2[3]=='/' and h!=1:
        m = 5
    elif line3[1]=='-' and h!=9:
        m = 45
    elif line3[3]=='-' and h!=3:
        m = 15
    elif line4[1]=='/' and h!=7:
        m = 35
    elif line4[3]=='\\' and h!=5:
        m = 25
    elif line2[2]=='|' and h!=12:
        m = 0
    elif line4[2]=='|' and h!=6:
        m = 30

    print h,m


def timber(p):
    f = open(p,'r')
    linecount=0
    line_size = 0
    line = f.readline()
    while(line):
        linecount+=1
        line_size = max(line_size,len(line)-1)
        line = f.readline()
    block = array([[0]*line_size]*linecount)
    f.seek(0)
    for i in range(linecount):
        line = f.readline()
        for j in range(len(line)-1):
            if(line[j]==' '):
                block[i][j]=0
            elif(line[j]=='/'):
                block[i][j]=1
            elif(line[j]=='\\'):
                block[i][j]=2
            else:
                block[i][j]=3
    f.close()
    for i in range(linecount):
        for j in range(line_size):
            if(block[i][j]==1 and j!=0 and block[i][j-1]==3):
                block[i][j]=4
        for j in range(line_size-1,0,-1):
            if(block[i][j]==2 and j!=line_size-1 and block[i][j+1]==3):
                block[i][j]=4
    for i in range(linecount):
        for j in range(line_size):
            if(block[i][j]==3 and i<linecount-1 and block[i+1][j]==0):
                print "Unsafe Structure"
                return
    print "Safe Structure"

def slackernews(s,r,p):
    import urllib2
    response = urllib2.urlopen('https://news.ycombinator.com')
    html = response.read()
    titles_list = []
    ix = -1
    count = 0
    index_list =  []
    while(count<21):
        ix = html.find("<td class=\"title\"",ix+1)
        index_list.append(ix)
        count+=1
    for i in range(len(index_list)-1):
        line = html[index_list[i]:index_list[i+1]]
        line = line[line.find("a href"):]
        start = line.find('>')
        end = line.find('<')
        titles_list.append(line[start+1:end])
    f = open(p,'w')
    for title in titles_list:
        title = title.replace(s,r)
        f.write('<h1>'+title+'</h1>')
    print "Done writing, Check : ",p
    f.close()


greenway('test!',2)
s='this is a cat. this is a dog. dog is an animal, animal is a beast in disguise.'
t='is'
ix=somewhereintherough(s,t,8)
print ix,s[ix:]
def x():
    return 4
def y():
    print ' !y_called! '
g = curryfordinner(x,y)
g()
spew('test.dat')
treasurehunt('test.dat','a')
bridgeontheriverkwai([-7,-22,6,9])
timeflieswhenyoureplayinggolf('clock.dat')
timber('block.dat')
slackernews('a','b','slacker.html')

0

最初のコードゴルフ!(まだ作業中...)

1.グリーンウェイ

言語:Python 3.2.3
ファイルサイズ:23バイト
コード:

def f(c,n): print(c*n)

3.夕食のカレー

言語:Python 3.2.3
ファイルサイズ:64バイト
コード:

def f(x,y):
    def g():
        for i in [1]*x(): y()
    return g

私が正しく理解していれば、同じ言語を2回使用するとドッキングポイントになります。楽しみのためだけにやっているなら、問題ありません。
Hosch250

@ user2509848 9つのゴルフ可能な言語がわからないので、ドッキングする必要があります。:(しかし、ヘッズアップに感謝します!
アプノートン

ルビー、Perlの、Golfscript、とMathematicaしばしば勝者です
Hosch250

私はC ++のみを知っていますが、Javaが少しあり、Python 3.2.3が少ないです。HTMLとCSS(とにかく使用できない(CSS))以外は何もありません。
Hosch250

0

ここで進行中の別の作業、および私は仕事にいるので、後で戻ります。

RubyのGreenway(14文字、#alligatorで24文字)、で呼び出すf.(c, n)

f=->c,n{p c*n}#alligator

スクリーンショット

緑化

CoffeeScript の大まかな場所(38文字)

f=(t,s,n)->t.split(s,n).join(s).length

スクリーンショット

荒野のどこか

JavaScript でのディナーのカレー(54文字)

f=function(x,y){return function(){for(i=x();i--;)y()}}

スクリーンショット

夕食のカレー

PHPで吐き出す(111文字)

これにはshort_open_tag、PHP構成ファイルで有効にする必要があります。それ以外の場合、開始区切り文字はである必要があります<?php@シンボルは、引用符でPHP_NOTICE囲むのを避けrand$s変数を明示的に宣言しないためにスローされるエラーを抑制するために使用されます。これにより、両方の軸に4〜30文字のASCII文字の正方形グリッドが生成されます。

<? @$r=rand;$x=$r(4,30);for($i=$x*$x;--$i;){@$s.=$i%$x!=0?chr($r(33,126)):"\n";}file_put_contents($argv[1],$s);

スクリーンショット

吐く


その端末は何を使用していますか?
アレクサンダークラッグス14

0

1.グリーンウェイ(Python 2:20)

def a(x,n):print x*n

入力例:a("asdf",3)-> string(asdfasdfasdf

2.荒野のどこか(Python 2:47)

def b(t,s,n):return len(s.join(t.split(s)[:n]))

入力例:b("1,2,333,4,5,6",",",3)-> int(7)

3.夕食のカレー(Javascript:61)

function c(a,b){d=a();return function(){while(d){d--;b()}};};

入力例:function z(){ return 3; }; function y(){ console.log( '1' ) }; myfunc = c(z,y); myfunc();-> string(1)コンソールへのログ... 3回。

仕様に従って、c関数を返しますが、実際にはその関数自体を実行しません。

4. Spew(C ++ 11:171)

#include<fstream>
using namespace std;void d(string f){ofstream o;int i=rand()%10;int j=rand()%10;o.open(f);for(int x=0;x<i;x++){for(int y=0;y<j;y++){o.put(rand()%256);}}}

これは実際にはテストされていませんが、機能するはずです。


0

読みやすくするために一部のインデントはそのまま残されていますが、文字を数えるときに削除されました。合計は約1227です。または、問題を忘れました。1486 1465文字。

1. MIPS ASM(55文字)

#a0 : the address of the null terminated string.
#a1 : the repetition count.
f:
li $v0,4
syscall
addi $a1,$a1,-1
bne $a1,$0,f
jr $ra

2.スキーム(52文字)

(define (f t s n)(list-ref(string-search-all s t)n))

3. F#(39文字)

let f x y=fun()->for i in 1..x() do y()

4. Powershell(133文字)

Function f($p){
$r=(Get-Random)%100
$z="";for($b=$r*$r;$b -gt 0;$b--){$z+=[char](33+(Get-Random)%94);if($b%$r -eq 1){"$z">>$p;$z=""}}
}

5. C ++(184 152文字)

#include <istream>
#include <string>
int*f(std::string p,char c){int*x=new int[2]();std::ifstream i(p);for(;i>>p;x[1]++)if((x[0]=p.find(c))>0)return x;}

6. C#(291 282文字)

static void f(List<int> l)
{
    var z = "";
    var o = l[0].ToString();
    for (int j = 1; j < l.Count;j++)
    {
        int p = l[j-1];
        int i = l[j];
        var q = "/"+(i-p<0?"":"+")+(i-p).ToString()+"\\";
        o += new String(' ',q.Length)+i.ToString();
        z+=new String(' ',p.ToString().Length)+q;
    }
    Console.Out.Write(z+"\n"+o);
}

7. Haskell(318 306文字)

Haskellを試すための言い訳を探していました。数字の組み合わせで位置のリストを生成するのは賢明だと思っていましたが、文字数が多かったので、いまいましいことをハードコーディングできたかもしれません。しかたがない。コードはひどいですが、とにかく書くのは楽しかったです。

編集:修正され、分が正しく返されるようになりました。

w i s=[s!!(j!!1)!!(j!!0)/=' '|j<-mapM(const i)[1,2],j/=[2,2]]
k[e,r](i,o,n)|i&&o=[e, n]|i&&not o=[n, r]|not$o||i=[e, r]
g s=let[h,m]=foldl k[0,0](zipWith3(\x y z->(x,y,z))(w[1,2,3]s)(w[0,2,4]s)[11,9,7,12,6,1,3,5])in let u=mod(m*5)60 in if h==0 then[m,u]else[h,u]
f p = do
  s<-readFile p
  return$g$lines s

8.ルア(259文字)

文字列が配列スタイルのインデックス付けをサポートしていないことに驚いたので、subに頼らなければなりませんでした。

function f (p)
    s=' ' g=''
    for l in io.open(p):lines() do l=l..s:rep(#g-#l) for v=1,#g do
        d=({['/']=v-1,['\\']=v+1,[s]=0})[g:sub(v,v)] or -1
        if l:sub(v,v)==s and (d<0 or d>0 and g:sub(d,d)==s and l:sub(d,d)==s) then
            return false
        end
    end g=l end
    return true
end

9. Python(187文字)

URL短縮サービスを提供してくれたgrc / Tyroidに感謝します。

import urllib2
def f(s,r,p):[open(p,'a').write('\074h1\076'+i.split("\074")[0].replace(s,r)+'\074/h1\076') for i in urllib2.urlopen("http://x.co/3WYmQ").read().split("\074title\076")[2:]]
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.