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.58 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.57 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.56 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.55 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.54 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.53 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.52 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.51 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.50 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.49 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.48 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.47 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.46 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.45 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.44 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.43 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.42 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.41 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.40 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java
trackler-2.2.1.39 tracks/java/exercises/transpose/.meta/src/reference/java/Transpose.java