Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- line = list(input())
- line.append("#")
- state = 0
- base = 10
- max_len = 100
- length = 0
- lead_zero = False
- minus = False
- for char in line:
- if char == "#":
- pass
- elif state == 0:
- if char == '%':
- state = 1
- elif char == '-':
- if minus:
- state = -1
- minus = True
- elif char in '0123456789':
- length += 1
- if char == '0':
- lead_zero = True
- state = 3
- else:
- state = -1
- elif state == 1:
- if char == "0":
- state = 2
- else:
- state = -1
- elif state == 2:
- if char == 'x':
- state = 3
- max_len = base = 16
- elif char == 'o':
- state = 3
- max_len = base = 8
- elif char == 'b':
- state = 3
- max_len = 20
- base = 2
- else:
- state = -1
- elif state == 3:
- if char == ".":
- state = 4
- continue
- if char == "E":
- state = 5
- continue
- if base == 10:
- if char in '0123456789':
- if lead_zero:
- state = -1
- lead_zero = False
- length += 1
- else:
- state = -1
- elif base == 2:
- if char in '01':
- length += 1
- else:
- state = -1
- elif base == 8:
- if char in '01234567':
- length += 1
- else:
- state = -1
- elif base == 16:
- if char in '0123456789abcdef':
- length += 1
- else:
- state = -1
- if length > max_len:
- state = -1
- elif state == 4:
- if char != "0":
- if char == "%":
- state = 1
- base = 10
- max_len = 100
- length = 0
- elif char in "123456789":
- state = 3
- base = 10
- max_len = 100
- length = 1
- else:
- state = -1
- elif state == 5:
- if char == "+" or char == "-":
- minus = True
- state = 0
- base = 10
- max_len = 100
- length = 0
- else:
- state = -1
- if state == -1:
- print("NO")
- break
- else:
- if length != 0:
- print("YES")
- else:
- print("NO")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement