Airport Arrivals/Departures - #1java
class Dinglemouse { private static final String ALPHABET = Preloaded.ALPHABET; private static final int SIZE = ALPHABET.length(); private static Character flap(Character x, int step) { int current = ALPHABET.indexOf(x); int to = (current + step) % SIZE; return ALPHABET.charAt(to); } public static String[] flapDisplay(final String[] lines, final int[][] rotors) { String[] rslt = new String[lines.length]; for (int i = 0; i < lines.length; i++) { StringBuilder sb = new StringBuilder(lines[i]); for (int j = 0; j < rotors[i].length; j++) { for (int k = j; k < sb.length(); k++) { Character c = sb.charAt(k); Character to = flap(c, rotors[i][j]); sb.replace(k, k + 1, String.valueOf(to)); } } rslt[i] = sb.toString(); } return rslt; } }
public class Preloaded {ui
public static final String ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ ?![@#](https://my.oschina.net/u/2839266)&()|<>.:=-+*/0123456789"; public static String[] prettyPrint(String[] a) { return a; }
}.net
### Example Tests:
import org.junit.Test; import static org.junit.Assert.*;code
public class ExampleTests {get
private String[] BEFORE(String[] a) { System.out.println("Before:"); return Preloaded.prettyPrint(a); }it
private String[] AFTER(String[] a) { System.out.println("After:"); return Preloaded.prettyPrint(a); }io
@Test public void example() { // CAT => DOG String[] before = BEFORE(new String[]{"CAT"}); int[][] rotors = new int[][]{{1,13,27}}; String[] after = AFTER(Dinglemouse.flapDisplay(before,rotors)); String[] expected = new String[]{"DOG"}; assertArrayEquals(expected, after); }class
@Test public void basic() { // HELLO => WORLD! String[] before = BEFORE(new String[]{"HELLO "}); int[][] rotors = new int[][]{{15,49,50,48,43,13}}; String[] after = AFTER(Dinglemouse.flapDisplay(before,rotors)); String[] expected = new String[]{"WORLD!"}; assertArrayEquals(expected, after);import
// CODE => WARS String[] before2 = BEFORE(new String[]{"CODE"}); int[][] rotors2 = new int[][]{{20,20,28,0}}; String[] after2 = AFTER(Dinglemouse.flapDisplay(before2,rotors2)); String[] expected2 = new String[]{"WARS"}; assertArrayEquals(expected2, after2);
}bug
}