skyscrapers.py
def check_columns(board: list) -> bool:
    """
    Check column-wise compliance of the board for uniqueness (buildings of unique height)
    and visibility (top-bottom and vice versa).

    Same as for horizontal cases, but aggregated in one function for vertical case, i.e. columns.

    >>> check_columns(['***21**', '412453*', '423145*', '*543215', '*35214*', '*41532*', '*2*1***'])
    True
    >>> check_columns(['***21**', '412453*', '423145*', '*543215', '*35214*', '*41232*', '*2*1***'])
    False
    >>> check_columns(['***21**', '412553*', '423145*', '*543215', '*35214*', '*41532*', '*2*1***'])
    False
    """
    length = len(board)
    new_board = ['' for i in range(length)]
    for line in board:
        for index, element in enumerate(line):
            new_board[index] += element
    return check_horizontal_visibility(new_board) and check_uniqueness_in_rows(new_board)

    Check column-wise compliance of the board for uniqueness (buildings of unique height)
    and visibility (top-bottom and vice versa).

    Same as for horizontal cases, but aggregated in one function for vertical case, i.e. columns.

    >>> check_columns(['***21**', '412453*', '423145*', '*543215', '*35214*', '*41532*', '*2*1***'])
    True
    >>> check_columns(['***21**', '412453*', '423145*', '*543215', '*35214*', '*41232*', '*2*1***'])
    False
    >>> check_columns(['***21**', '412553*', '423145*', '*543215', '*35214*', '*41532*', '*2*1***'])
    False
    
Check column-wise compliance of the board for uniqueness (buildings of unique height)
and visibility (top-bottom and vice versa).

Same as for horizontal cases, but aggregated in one function for vertical case, i.e. columns.


Check column - wise compliance of the board for uniqueness ( buildings of unique height ) and visibility ( top - bottom and vice versa ) . Same as for horizontal cases but aggregated in one function for vertical case i . e . columns .
def check_columns(board: list) -> bool:
    length = len(board)
    new_board = ['' for i in range(length)]
    for line in board:
        for index, element in enumerate(line):
            new_board[index] += element
    return check_horizontal_visibility(new_board) and check_uniqueness_in_rows(new_board)
def check_columns ( board : list ) -> bool : length = len ( board ) new_board = [ '' for i in range ( length ) ] for line in board : for index , element in enumerate ( line ) : new_board [ index ] += element return check_horizontal_visibility ( new_board ) and check_uniqueness_in_rows ( new_board )
Check column-wise compliance of the board for uniqueness (buildings of unique height)
and visibility (top-bottom and vice versa).
Check column - wise compliance of the board for uniqueness ( buildings of unique height ) and visibility ( top - bottom and vice versa ) .
"""
    Check column-wise compliance of the board for uniqueness (buildings of unique height)
    and visibility (top-bottom and vice versa).

    Same as for horizontal cases, but aggregated in one function for vertical case, i.e. columns.

    >>> check_columns(['***21**', '412453*', '423145*', '*543215', '*35214*', '*41532*', '*2*1***'])
    True
    >>> check_columns(['***21**', '412453*', '423145*', '*543215', '*35214*', '*41232*', '*2*1***'])
    False
    >>> check_columns(['***21**', '412553*', '423145*', '*543215', '*35214*', '*41532*', '*2*1***'])
    False
    """
board
list