Look and say numbers
地址:http://www.codewars.com/kata/53ea07c9247bc3fcaa00084d/train/python
There exists a sequence of numbers that follows the pattern
1
11
21
1211
111221
312211
13112221
1113213211 . . .
Starting with "1" the following lines are produced by "saying what you see", so that line two is "one one", line three is "two one(s)", line four is "one two one one".
代码如下:
import collections def say(stra): lenA = len(stra) dic = collections.OrderedDict() ans = "" for i in range(0,lenA): if dic.has_key(stra[i]): dic[stra[i]] += 1 else: dic[stra[i]] = 1 if i > 0 and stra[i] != stra[i-1] : ans += (str(dic[stra[i-1]]) + stra[i-1]) dic[stra[i-1]] = 0 ans += (str(dic[stra[i]]) + stra[i]) return ans def look_and_say(data='1', maxlen=5): lista = [] lista.append(say(data)) for i in range(1,maxlen): lista.append(say(lista[i-1])) return lista
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号