Re: [問題]今年台銀IT人員招考試題
原文恕刪
這是我寫的
不過很奇怪
我竟然沒辦法用 console
所以改用傳統的方式
真奇怪
package test.com.swpoker;
import java.io.*;
public class TestCompress {
BufferedReader in
= new BufferedReader(new InputStreamReader(System.in));
int M = 26;
int S = (int) 'A';
int E = (int) 'Z';
String readForString() {
try {
return in.readLine();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
int readForInt() {
return Integer.parseInt(readForString());
}
void process() {
compress(readForInt(), readForString());
}
String compress(int k, String str) {
char[] is = str.toUpperCase().toCharArray();
char[] rs = new char[is.length];
int c = 0;
int t;
for (int i = 0; i < is.length; i++) {
if ((int) is[i] >= S && (int) is[i] <= E) {
t = ((int) is[i] - S + k);
for (; t < 0; t = t + M);
rs[c++] = (char) ((t % M) + S);
}
}
String rstr = new String(rs, 0, c);
System.out.println("k=" + k + ",input=" + str
+ ",result=" + rstr + "");
return rstr;
}
public static void main(String[] args) {
TestCompress t = new TestCompress();
// t.process();
int k = 99;
String str = "ABCDXYZ";
System.out.println("str=" + str);
String decode = t.compress(k, str);
System.out.println("decode=" + decode);
String encode = t.compress(0 - k, decode);
System.out.println("encode=" + encode);
}
}
---------------------------
結果
str=ABCDXYZ
k=99,input=ABCDXYZ,result=VWXYSTU
decode=VWXYSTU
k=-99,input=VWXYSTU,result=ABCDXYZ
encode=ABCDXYZ
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.85.0.6
※ 編輯: swpoker 來自: 163.29.29.131 (11/23 09:46)
討論串 (同標題文章)
完整討論串 (本文為第 5 之 5 篇):