codewars046: 机场起飞降落电子指示牌

本文介绍了一个针对Python工程师的招聘标准示例,通过一个具体的代码案例展示了如何使用特定的类和方法来实现字符串的转换,包括定义字符集、创建翻转显示效果等。

Instructions:

Airport Arrivals/Departures - #1

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 {

public static final String ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ ?![@#](https://my.oschina.net/u/2839266)&()|<>.:=-+*/0123456789";

public static String[] prettyPrint(String[] a) {
	return a;
}

}

### Example Tests:

import org.junit.Test; import static org.junit.Assert.*;

public class ExampleTests {

private String[] BEFORE(String[] a) { System.out.println("Before:"); return Preloaded.prettyPrint(a); }

private String[] AFTER(String[] a) { System.out.println("After:"); return Preloaded.prettyPrint(a); }

@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); }

@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);

  // 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);

}

}

转载于:https://my.oschina.net/u/553266/blog/818064

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值