Advertisement
Guest User

Untitled

a guest
Oct 24th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.33 KB | None | 0 0
  1. #lru.py
  2.  
  3. #loop input until 'EXIT'
  4. read_line = ""
  5. data = []
  6. while read_line.lower() != "exit":
  7. read_line = raw_input()
  8. if read_line.lower() != "exit":
  9. data.append(read_line)
  10.  
  11. #expect 'SIZE n' once
  12. size_val = 0
  13. size_line = data[0]
  14. del data[0]
  15. size_kv = size_line.split()
  16. if size_kv[0].lower() == "size":
  17. try:
  18. size_val = int(size_kv[1])
  19. print "SIZE OK"
  20. except ValueError:
  21. exit("ERROR")
  22. else:
  23. exit("ERROR")
  24.  
  25. #track fifo keys
  26. keys = []
  27. m = {}
  28. input_line = ""
  29. for input_line in data:
  30. input_kv = input_line.split()
  31. op = input_kv[0].lower()
  32. if op == "set":
  33. #add item
  34. if input_kv[1] not in keys:
  35. if len(keys) >= size_val:
  36. #bookmark oldest key
  37. stale = keys[0]
  38. #release oldest val
  39. if m.has_key(stale):
  40. del m[stale]
  41. #release oldest key
  42. del keys[0]
  43. #keep new key
  44. keys.append(input_kv[1])
  45. #keep new val
  46. m[input_kv[1]] = input_kv[2]
  47. print "SET OK"
  48. elif op == "get":
  49. #retreive item
  50. if m.has_key(input_kv[1]):
  51. print "GOT %s" % (m[input_kv[1]])
  52. else:
  53. print "NOTFOUND"
  54. elif input_line == "exit":
  55. break
  56. else :
  57. print "ERROR"
  58.  
  59. ####print "finished"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement