codewars046: 機場起飛降落電子指示牌

Instructions:

Airport Arrivals/Departures - #1java

Solution:

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

}

相關文章
相關標籤/搜索