Comment écrire hors ligne en temps réel http://atnd.org/events/38770 Problème de référence http://nabetani.sakura.ne.jp/hena/ord11arithseq/ J'ai écrit un exemple d'implémentation en python. Il a été confirmé qu'il fonctionne à la fois avec python2.7 et python3.3.
Exemples de réponses dans d'autres langues http://qiita.com/items/c206fbc645c255cb7de6 Vous pouvez suivre de.
alors. Comme ça.
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 et 2 autres""" )
La plupart des données de test sont omises comme d'habitude.
Commentaire de matarillo qui essaie diverses choses avec F # http://qiita.com/items/6ab69f5f514cb2d0e7a8#comment-73ec472aa6be28061f68 Je l'ai écrit inspiré par.
On a l'impression que la pile déborde parce que c'est une récurrence qui ne devient pas une récurrence de queue, mais c'est correct parce qu'elle est au plus de 36. était.
J'aimerais le faire ressembler à python, mais ce n'est pas bon simplement en utilisant une notation d'inclusion. Encore une fois, je n'ai pas eu l'occasion d'utiliser else dans l'instruction for. Pardon.
Depuis que je suis un débutant en python, j'ai fait de nombreuses découvertes.
#coding: utf-8
a un effet. (Pour python2.7)Recommended Posts