input: def sierpinski_triangle(n: int) -> None:
      """
      Generate and print the first n rows of the Sierpinski triangle using a simple
      algorithm that draws the bit patterns for each row. The first row contains a single '1'.
      Each subsequent row alternates between '1's and '0's based on the bit pattern generated.
      
      >>> sierpinski_triangle(6)
        1 
       1 1 
      1 0 1 
     1 1 1 1 
    1 0 0 0 1 
   1 1 1 1 1 1 
      """
output:     for i in range(n):
          print(' ' * (n - i - 1), end='')
          for j in range(i + 1):
              if (j == 0) or (j == i):
                  print('1', end=' ')
              else:
                  print('0', end=' ')
          print()