TADM2E 8.13

From Algorithm Wiki
Jump to: navigation, search
   a=raw_input()                        # the input string
   m=raw_input().split(" ")             # the set of tokens separated by space
   n=len(m) 
   k=int(raw_input())                   # the maximum length of the token
   l=[float("inf")]*(len(a)+1)     
   l[0]=0
   for i in range(1,len(a)+1):
       lm = 0
       while lm<i:
           cost = float("inf")
           if a[lm:i] in m:
               cost=l[lm]+1
           if cost < l[I] :
               l[i] = cost
           lm=lm+1
   print(l[-1])


Python Based implementation