When working with color values it can sometimes be useful to extract the individual red, green, and blue (RGB) component values for a color. Implement a function that meets these requirements:

+ Accepts a case-insensitive hexadecimal color string as its parameter (ex. `"#FF9933"` or `"#ff9933"`)
+ Returns an object with the structure `{r: 255, g: 153, b: 51}` where *r*, *g*, and *b* range from 0 through 255

**Note:** your implementation does not need to support the shorthand form of hexadecimal notation (ie `"#FFF"`)


## Example

```
"#FF9933" --> {r: 255, g: 153, b: 51}
```

Source: codewars | Difficulty: EASY
Tags: String algorithms

Starter code: def hex_string_to_RGB(hex_string):
	

Solutions:
def hex_string_to_RGB(s):
	return {i: int(s[j:j + 2], 16) for (i, j) in zip('rgb', [1, 3, 5])}


def hex_string_to_RGB(hex):
	return {'r': int(hex[1:3], 16), 'g': int(hex[3:5], 16), 'b': int(hex[5:7], 16)}


def hex_string_to_RGB(s):
	return {c: int(s[1 + 2 * i:3 + 2 * i], 16) for (i, c) in enumerate('rgb')}


def hex_string_to_RGB(hex_string):
	return {'r': int(f'0x{hex_string[1:3]}', 16), 'g': int(f'0x{hex_string[3:5]}', 16), 'b': int(f'0x{hex_string[5:]}', 16)}


def hex_string_to_RGB(hex_string):
	(r, g, b) = [int(hex_string[i:i + 2], 16) for i in (1, 3, 5)]
	return {'r': r, 'g': g, 'b': b}


def hex_string_to_RGB(hex_string):
	color = int(hex_string[1:], 16)
	return {'r': color >> 16 & 255, 'g': color >> 8 & 255, 'b': color & 255}


def hex_string_to_RGB(hex_string):
	integer = eval(f"0x{hex_string.lstrip('#').lower()}")
	return {'r': integer >> 16 & 255, 'g': integer >> 8 & 255, 'b': integer & 255}