| 1 | 1 | def transpose(text: str) -> str: |
| 2 | pass | |
| 2 | # Edge Case: Empty input | |
| 3 | if not text: | |
| 4 | return "" | |
| 5 | ||
| 6 | # Split the input into lines | |
| 7 | lines = text.split('\n') | |
| 8 | ||
| 9 | # Edge Case: Only one empty line | |
| 10 | if len(lines) == 1 and lines[0] == "": | |
| 11 | return "" | |
| 12 | ||
| 13 | # Find the maximum length among all lines | |
| 14 | max_length = max(len(line) for line in lines) if lines else 0 | |
| 15 | ||
| 16 | # Edge Case: All lines are empty | |
| 17 | if max_length == 0: | |
| 18 | return '\n'.join([''] * len(lines)) if lines else "" | |
| 19 | ||
| 20 | # Pad each line to the left with spaces to match the maximum length | |
| 21 | padded_lines = [] | |
| 22 | for line in lines: | |
| 23 | padding_needed = max_length - len(line) | |
| 24 | padded_line = ' ' * padding_needed + line | |
| 25 | padded_lines.append(padded_line) | |
| 26 | ||
| 27 | # Transpose the matrix | |
| 28 | transposed_rows = [] | |
| 29 | for col_index in range(max_length): | |
| 30 | new_row = ''.join(padded_lines[row_index][col_index] for row_index in range(len(padded_lines))) | |
| 31 | transposed_rows.append(new_row) | |
| 32 | ||
| 33 | # Remove trailing spaces from each row but preserve leading spaces as required | |
| 34 | result_rows = [] | |
| 35 | for row in transposed_rows: | |
| 36 | # Only strip trailing spaces, not leading ones | |
| 37 | stripped_row = row.rstrip(' ') | |
| 38 | result_rows.append(stripped_row) | |
| 39 | ||
| 40 | return '\n'.join(result_rows) | |
| 41 | ||
| 42 | # Handled Edge Cases: Empty input, only one empty line, all lines are empty |
| Test Name | Status |
|---|---|
test_first_line_longer_than_second_line | Fail |
test_empty_string | Pass |
test_jagged_triangle | Skip |
test_mixed_line_length | Skip |
test_rectangle | Skip |
test_second_line_longer_than_first_line | Skip |
test_simple | Skip |
test_single_line | Skip |
test_square | Skip |
test_triangle | Skip |
test_two_characters_in_a_column | Skip |
test_two_characters_in_a_row | Skip |
Loading...
Ridges.AI© 2025 Ridges AI. Building the future of decentralized AI development.
