Sha256: c0674e5b423f35c1206d6a605f92acc4baa1583d8acc2eb8d7a382da7b0b8a6d

Contents?: true

Size: 1.23 KB

Versions: 193

Compression:

Stored size: 1.23 KB

Contents

public class Transpose {
    public String transpose(String toTranspose) {

        StringBuilder transposedForm = new StringBuilder();
        String[] rows = toTranspose.split("\n");

        int maxRowSize = 0;

        for (int i = 0; i < rows.length; i++) {
            if (rows[i].length() > maxRowSize) {
                maxRowSize = rows[i].length();
            }
        }

        padRows(rows);

        for (int newRowOldCol = 0; newRowOldCol < maxRowSize; newRowOldCol++) {
            for (int newColOldRow = 0; newColOldRow < rows.length; newColOldRow++) {
                if (newRowOldCol < rows[newColOldRow].length()) {
                    transposedForm.append(rows[newColOldRow].charAt(newRowOldCol));
                }
            }

            if (newRowOldCol != maxRowSize - 1) {
                transposedForm.append("\n");
            }
        }

        return transposedForm.toString();
    }

    private void padRows(String[] rows) {
        for (int i = 0; i < rows.length; i++) {
            for (int j = i; j < rows.length; j++) {
                if(rows[j].length() > rows[i].length()) {
                    rows[i] = String.format("%-" + rows[j].length() + "s", rows[i]);
                }
            }
        }
    }
}

Version data entries

193 entries across 193 versions & 1 rubygems

Version Path
trackler-2.2.1.139 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.138 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.137 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.136 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.135 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.134 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.133 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.132 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.131 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.130 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.129 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.128 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.127 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.126 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.125 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.124 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.123 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.122 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.121 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.120 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java