fork download
  1. class LetterHelper:
  2. # Từ điển chứa các chữ cái và giá trị tương ứng
  3. letter_dic = {
  4. 'A': 10,
  5. 'B': 12,
  6. 'C': 13,
  7. 'D': 14,
  8. 'E': 15,
  9. 'F': 16,
  10. 'G': 17,
  11. 'H': 18,
  12. 'I': 19,
  13. 'J': 20,
  14. 'K': 21,
  15. 'L': 23,
  16. 'M': 24,
  17. 'N': 25,
  18. 'O': 26,
  19. 'P': 27,
  20. 'Q': 28,
  21. 'R': 29,
  22. 'S': 30,
  23. 'T': 31,
  24. 'U': 32,
  25. 'V': 34,
  26. 'W': 35,
  27. 'X': 36,
  28. 'Y': 37,
  29. 'Z': 38
  30. }
  31.  
  32. @staticmethod
  33. def check_digit(container_number, check_digit):
  34. # Xóa khoảng trắng và dấu gạch ngang
  35. list_digit = container_number.replace(" ", "").replace("-", "")
  36. total_sum = 0
  37. tmp = []
  38.  
  39. # Tính tổng cho 4 ký tự đầu
  40. for i in range(4):
  41. value = LetterHelper.letter_dic[list_digit[i]]
  42. tmp.append(value * (2 ** i))
  43. total_sum += value * (2 ** i)
  44.  
  45. # Tính tổng cho 6 ký tự còn lại
  46. for i in range(4, 10):
  47. x = int(list_digit[i]) # Chuyển ký tự số thành số nguyên
  48. y = 2 ** i
  49. tmp.append(x * y)
  50. total_sum += x * y
  51.  
  52. # Kiểm tra tổng theo modulo 11
  53. return check_digit == total_sum % 11
  54.  
  55.  
  56. # Ví dụ sử dụng
  57. container_number,check_digit_value= input().split()
  58. is_valid = LetterHelper.check_digit(container_number, check_digit_value)
  59. print(is_valid) # In ra True hoặc False
  60.  
Success #stdin #stdout 0.03s 9892KB
stdin
SUDU307007 9
stdout
False