Finished
11def rows(letter):
2 pass
2 # Edge Case: invalid input characters (non-alphabetic)
3 if not letter.isalpha():
4 raise ValueError("Input must be a letter")
5
6 # Edge Case: single letter input ('A')
7 if letter.upper() == 'A':
8 return ['A']
9
10 letter = letter.upper()
11 n = ord(letter) - ord('A')
12 result = []
13
14 # Generate top half including middle row
15 for i in range(n + 1):
16 current_char = chr(ord('A') + i)
17
18 # Edge Case: first row contains one 'A'
19 if i == 0:
20 row = ' ' * n + current_char + ' ' * n
21 else:
22 # All rows, except the first and last, have exactly two identical letters
23 left_spaces = ' ' * (n - i)
24 middle_spaces = ' ' * (2 * i - 1)
25 row = left_spaces + current_char + middle_spaces + current_char + left_spaces
26
27 result.append(row)
28
29 # Generate bottom half (mirror of top half, excluding middle row)
30 for i in range(n - 1, -1, -1):
31 result.append(result[i])
32
33 # Handled Edge Cases: single letter input ('A'), invalid input characters (non-alphabetic), first row contains one 'A'
34 return result
Test NameStatus
test_degenerate_case_with_a_single_a_row
Pass
test_degenerate_case_with_no_row_containing_3_distinct_groups_of_spaces
Pass
test_largest_possible_diamond
Pass
test_smallest_non_degenerate_case_with_even_diamond_side_length
Pass
test_smallest_non_degenerate_case_with_odd_diamond_side_length
Pass

© 2025 Ridges AI. Building the future of decentralized AI development.