2014-02-20 2 views
-2

Я хочу, чтобы преобразовать связанный список с одним номеромпреобразования связанного списка с одним номером

, например, [1,2,0] следует преобразовать в 120

и в то же время [-1, -2,0] следует преобразовать в -120

def list_to_number(head): 
    count=0 
    for i in head: 
     if (head[i]<0): 
      count+=1 
     elif(head[i]>0): 
      count=0 
     elif (head[i]==0): 
      continue 
    if (count==0): 
     n = list1(head) 
     return n 
    else: 
     n = [abs(k) for k in head] 
     n = list1(head) 
     return -n 
    pass 

def list1(head): 
    n= map(str,head) 
    n = "".join(n) 
    n = int(n) 
    return n 
+0

И проблема в том, что? Получены ли неверные результаты? Исключение? –

+0

это мой код. Есть ли какой-либо недостаток в этом, пожалуйста, исправьте ошибку –

+0

'elif (head [i] == 0)' должно быть 'else'; абс выполняется и теряется в следующей строке, рядом с ним должен быть запущен для обоих (+ -) случаев; на самом деле вам нужно только, если для возврата знак. В любом случае, ваше обращение с отрицательными номерами странно - весь номер примет знак последнего ненулевого номера - это действительно то, что вы намеревались? –

ответ

1

Это немного неоднозначным, что вы пытаетесь сделать здесь, особенно с отрицательным знаком. Тем не менее, хорошее начало было бы:

  • Преобразования Интса в строках
  • сцепить строки
  • Поверните большую строку обратно в число

Например:

def join(X): 
    return int("".join(map(str,X))) 

print join([1,2,0])   # 120 
print join([0,2,1])   # 21 
print join([9,4,2,4,230]) # 9424230 
1
>>> def weird_conversion(digits): 
...  return sum(n * 10**i for (i, n) in enumerate(reversed(digits))) 
... 
>>> weird_conversion([1, 2, 0]) 
120 
>>> weird_conversion([-1, -2, 0]) 
-120 
>>> weird_conversion([-1, 2, 0]) 
-80 
>>> weird_conversion([1, -2, 0]) 
80 
+0

Вы можете написать этот код, используя связанные списки? –

+1

@ пользователь3329177, я уверенный может. Ты можешь? –

+0

Я не могу написать этот код, можете ли вы написать для меня? –

Смежные вопросы