Maximum independent test batch
A test runner packs as many suites as it can into one parallel batch. clash_rows gives a square table one row at a time: character j of row i is y when suite i and suite j fight over the same fixture and so cannot run together, and n otherwise. The table is symmetric and every character on its diagonal is n. Return the size of the biggest batch, meaning the largest number of suites that can be chosen so that no chosen suite fights another chosen one. Choosing a single suite is always safe, so the answer is at least 1 once a suite exists. Return 0 when the table is empty. The runner handles at most 26 suites.
largest_parallel_batch(clash_rows: list[str]) → int[["nn","nn"]]out2[["nynn","ynyn","nyny","nnyn"]]out2[["nyyyyy","ynyyyy","yynyyy","yyynyy","yyyyny","yyyyyn"]]out1State your approach and its time/space complexity out loud before you optimize. Handle the edge cases (empty input, duplicates, overflow), and say why you chose this over the brute force. Green tests are the floor, not the grade.
[["nn","nn"]]2not run yetsample[["nynn","ynyn","nyny","nnyn"]]2not run yetsample[["nyyyyy","ynyyyy","yynyyy","yyynyy","yyyyny","yyyyyn"]]1not run yetsample