input: Write a python function called smallest_string_after_swaps that takes a string s consisting solely of digits. This function should return the lexicographically smallest string achievable by swapping adjacent digits with the same parity at most once.
  
  Digits are considered to have the same parity if both are odd or both are even. For instance, 4 and 8 have the same parity, while 3 and 8 do not.
  
  Examples:
  >>> s = "45320"
  "43520"
  >>> s = "001"
  "001"
  
  Constraints:
  2 <= len(s) <= 100
  s contains only digits.
output: def smallest_string_after_swaps(s):
      s = list(s)
      for i in range(len(s) - 1):
          if s[i] > s[i + 1] and (int(s[i]) % 2 == int(s[i + 1]) % 2):
              s[i], s[i + 1] = s[i + 1], s[i]
      return ''.join(s)