2017-06-20 94 views
-3
def answer(l): 
# your code here 
    l1=[] 
    l2=[] 
    l0=[] 
    l.sort(reverse=True) 
    for i in l: 
     if i%3==0: 
     l0.append(i) 
     elif i%3==1: 
     l1.append(i) 
     elif i%3==2: 
      l2.append(i) 
    if(sum(l)%3==0): 
     return int(''.join(str(e) for e in l)) 
    elif sum(l)%3==1: 
     if l1!=[]: 
     l1.pop() 
     else: 
      if len(l2)>=2: 
       l2.pop() 
       l2.pop() 
      else: 
       return 0 
    elif sum(l)%3==2: 
     if l2!=[]: 
     l2.pop() 
     else: 
      if len(l1)>=2: 
       l1.pop() 
       l1.pop() 
      else: 
       return 0 
    l1.extend(l2) 
    l1.extend(l0) 

    l1.sort(reverse=True) 
    return int(''.join(str(e) for e in l1)) 

l1列表需要转换为字符串,然后转换为int,但是出现值错误。我能知道为什么吗?
输入:(INT表)[3,1,4,1] 输出:(INT)4331为什么在将字符串列表转换为int时出现错误值

+2

什么是'l1'?目前很难猜出这个错误。 –

+0

请提供样本'l1',具体的错误信息和要求的输出。 – anonymoose

+0

是的,我已经改变了,你可以检查一下吗? –

回答

3

l1一些元件的字符串表示不匹配^[0-9]+$

这就是为什么你会得到ValueError

+1

@AkshayMakutam吧? '代码'是什么? – Uriel

+1

只读了他的想法。 (顺便说一句,整数也可以是负数;-) – tevemadar

+1

@tevemadar是的,最终的'''.join'应该看起来像'^ - ?[0-9] + $',但只有第一个项目可以有' '前缀 – Uriel

相关问题