https://www.interviewstreet.com/challenges/dashboard/#problem/4f802ebfad2a1
Mon code réussit 6/10 cas de test.Hyper Strings InterviewStreet: Python
from collections import Counter
j,k = map(int, raw_input().split())
y = Counter(len(raw_input()) for i in range(j))
saved = {}
def f(x):
if x in saved: return saved[x]
if x<1: return 0
k = y[x] if x in y else 0
for i in y:
k += y[i]*f(x-i)
saved[x] = k
return k
x = 0
for i in xrange(1,k+1):
x+=f(i)
print (x+1)%1000000007
Entrez « y » est la longueur de super chaîne et sa valeur est le nombre de chaînes de super avec cette longueur dans le jeu « H ».
poignées 'sauvé' memoization.
f (x) calcule les chaînes hyper de longueur x. Je parcourt toutes les valeurs dans la dernière boucle for.
x a un résultat, sauf chaîne vide (« »), donc x + 1
Vous devriez essayer de faire un peu plus de travail sur ce problème avant de l'apporter à SO - qu'avez-vous essayé? Pouvez-vous suivre l'exécution du code? Que fait-il en anglais? – katrielalex