So schreiben Sie offline in Echtzeit http://atnd.org/events/38770 Referenzproblem http://nabetani.sakura.ne.jp/hena/ord11arithseq/ Ich habe ein Implementierungsbeispiel für in Python geschrieben. Es wurde bestätigt, dass es sowohl mit Python2.7 als auch mit Python3.3 funktioniert.
Beispiele für Antworten in anderen Sprachen http://qiita.com/items/c206fbc645c255cb7de6 Sie können folgen aus.
damit. So was.
solver.py
#coding:utf-8
import re
def solve( src ):
def impl( s, seq ):
if 2<len(s) and ( s[1]-s[0] != s[-1]-s[-2] ) :
return 0
if len(seq)==0:
return len(s)
return max( impl( s, seq[1:] ), impl( s+seq[0:1], seq[1:] ) )
nums="0123456789abcdefghijklmnopqrstuvwxyz"
return "%d" % impl( [], [ nums.index(c) for c in list( src ) ] )
def test( samples ) :
for line in samples.splitlines():
a=re.split( "\s+", line ) # num, input, expected
if len(a) <3:
continue
actual = solve( a[1] )
ok=actual==a[2]
print( [ "ok" if ok else "***NG***", a[1:3], actual ] )
test( """
0 12345abcz 5 12345
1 012abku 4 0aku
2 01245689cdeghik 6 048cgk
49 012346abceghjknortv 5 01234 und 2 andere""" )
Die meisten Testdaten werden wie gewohnt weggelassen.
Kommentar von Matarillo, der verschiedene Dinge mit F # ausprobiert http://qiita.com/items/6ab69f5f514cb2d0e7a8#comment-73ec472aa6be28061f68 Ich habe es inspiriert von geschrieben.
Es ist eine Wiederholung, die nicht zu einer Schwanzwiederholung wird, also fühlt es sich an, als würde der Stapel überlaufen, aber es ist okay, weil es höchstens 36 ist. war.
Ich möchte, dass es wie Python aussieht, aber es ist nicht gut, nur eine Einschlussnotation zu verwenden. Auch hier hatte ich keine Chance, etwas anderes in der for-Anweisung zu verwenden. Es tut uns leid.
Da ich ein Anfänger von Python bin, habe ich viele Entdeckungen gemacht.
#coding: utf-8
hat einen Effekt. (Für Python2.7)Recommended Posts