<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def check_strings(strings, arrays):
 """ Decorator function which can be used to automatically turn an incoming string into a bytes object and an incoming list to a pointer array if necessary. :param strings: Indices of the arguments must be pointers to bytes :type strings: List of integers :param arrays: Indices of the arguments must be arrays of pointers to bytes :type arrays: List of integers """


    # if given a single element, turn it into a list
    if isinstance(strings, int):
        strings = [strings]
    elif strings is None:
        strings = []

    # check if all entries are integers
    for i,k in enumerate(strings):
        if not isinstance(k, int):
            raise TypeError(('Wrong type for index at {0} '+
                    'in strings. Must be int, not {1}!').format(i,k))

    # if given a single element, turn it into a list
    if isinstance(arrays, int):
        arrays = [arrays]
    elif arrays is None:
        arrays = []

    # check if all entries are integers
    for i,k in enumerate(arrays):
        if not isinstance(k, int):
            raise TypeError(('Wrong type for index at {0} '+
                    'in arrays. Must be int, not {1}!').format(i,k))

    # check if some index occurs in both
    if set(strings).intersection(arrays):
        raise ValueError('One or more elements occur in both arrays and ' +
                ' strings. One parameter cannot be both list and string!')

    # create the checker that will check all arguments given by argsToCheck
    # and turn them into the right datatype.
    def checker(func):
        def check_and_call(*args):
            args = list(args)
            for i in strings:
                arg = args[i]
                args[i] = str_to_bytes(arg)
            for i in arrays:
                arg = args[i]
                args[i] = list_to_bytes_list(arg)

            return func(*args)

        return check_and_call

    return checker