ThoughtWorks線上程式設計題解體驗
阿新 • • 發佈:2019-01-06
題目我忘記了,大致意思是:
輸入任意數字,打印出相對應得字元
例如:
不多說了直接上題解吧
import java.util.Scanner;
import java.util.Stack;
public class ThoughtWorks_test {
public static void main(String []args){
Scanner sc=new Scanner(System.in);
String n=sc.nextLine();
String a[]={"._.\n|.|\n|_|",
"...\n..|\n..|" ,
"._.\n._|\n|_.",
"._.\n._|\n._|",
"...\n|_|\n..|",
"._.\n|_.\n._|",
"._.\n|_.\n|_|",
"._.\n..|\n..|",
"._.\n|_|\n|_|",
"._.\n|_|\n..|"};
char N[]=n.toCharArray();
{
Stack<Long> stack = new Stack<>();
int count = N.length;
for (int i=count-1;i>=0;i--){
stack.push((long) (N[i]-'0'));
}
String S[][] = new String[count + 1][];
for (int i = 0; i < count; i++) {
S[i] = a[Math.toIntExact(stack.pop())].split("\n" );
}
for (int i = 0; i < 3; i++) {
for (int j = 0; j < count; j++)
if (j == count - 1)
System.out.print(S[j][i]);
else System.out.print(S[j][i] + " ");
System.out.println();
}
}
}
}
解析:
應該不算難,程式碼也相對比較得的簡陋無非就是將0-9這十個字元中的每一個字元都用字元陣列來表示,這樣就有一個長度為10的二維字元陣列,然後再利用for和if輕鬆的將其打印出來
小結
除錯花了半個小時,題目雖然簡單,但探險的過程還是花了不少的時間