Advertisement
Guest User

Untitled

a guest
Feb 1st, 2015
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.56 KB | None | 0 0
  1. #!/usr/bin/env python3
  2.  
  3. def compr(string_list):
  4. # conversion yfir i tolur.
  5. # l thvi ad 'arrays' i python eru i raun listar
  6. l = []
  7. for i in string_list.split():
  8. l.append(int(i))
  9.  
  10. #compression list
  11. cl = []
  12.  
  13. # Traditional for loopa fyrir list indexa
  14. for i in range(0,len(l)):
  15. # Frumskilyrdi, baetum fyrsta stakinu vid sem lista/array
  16. if i == 0:
  17. cl.append([l[i]])
  18. else:
  19. #fyrir hvern lista i compression listanum
  20. for c in cl:
  21. #continuity check
  22. if l[i] == l[i-1] + 1:
  23. # ef fyrra stakid er i thessum lista og hann er
  24. # staerri en 1 stak, tha skiptum vid ut stakinu.
  25. if l[i-1] in c and len(c) > 1:
  26. c[c.index(l[i-1])] = l[i]
  27. # Annars er klarlega bara 1 stak i listanum og vid
  28. # baetum hinu vid.
  29. elif l[i-1] in c:
  30. c.append(l[i])
  31.  
  32. # Dirty conditionals svo vid seum ekki ad tvitelja
  33. # inni i tvofoldu for lykkjunni.
  34. elif l[i] in c or [l[i]] in cl:
  35. pass
  36.  
  37. # Ef ekkert gengur, baetum vid vid listann.
  38. else:
  39. cl.append([l[i]])
  40.  
  41. # Pretty print
  42. p = ""
  43. for c in cl:
  44. if len(c) > 1:
  45. p += str(c[0])+"-"+str(c[1])+" "
  46. else:
  47. p += str(c[0]) + " "
  48. print(p)
  49.  
  50.  
  51. # main. ignore this.
  52. if __name__ == '__main__':
  53. s = input()
  54. compr(s)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement