input: def GeneratePascalTriangle(n: int) -> str:
      """Generate and return a string representation of a Pascal Triangle with n rows.
      >>> GeneratePascalTriangle(5)
      '1 \\n1 1 \\n1 2 1 \\n1 3 3 1 \\n1 4 6 4 1 \\n'
      >>> GeneratePascalTriangle(3)
      '1 \\n1 1 \\n1 2 1 \\n'
      """
      
      # An auxiliary array to store generated Pascal triangle values
      arr = [0 for i in range(n)]
      result = ""
      
      # Iterate through every line and print integer(s) in it
      for line in range(0, n):
          
          # Every line has number of integers equal to line number
          for i in range(0, line + 1):
              
              # First and last values in every row are 1
              if (i == 0 or i == line):
                  arr[i] = 1
              
              # Other values are sum of values just above and left of above
              else:
                  arr[i] = arr[i] + arr[i - 1]
          
          # Collecting the line in string format
          result += " ".join(str(arr[i]) for i in range(0, line + 1)) + "\n"
      
      return result
output:     arr = [0 for i in range(n)]
      result = ""
      
      # Iterate through every line and print integer(s) in it
      for line in range(0, n):
          
          # Every line has number of integers equal to line number
          for i in range(0, line + 1):
              
              # First and last values in every row are 1
              if (i == 0 or i == line):
                  arr[i] = 1
              
              # Other values are sum of values just above and left of above
              else:
                  arr[i] = arr[i] + arr[i - 1]
          
          # Collecting the line in string format
          result += " ".join(str(arr[i]) for i in range(0, line + 1)) + "\n"
      
      return result