Re: [問題]今年台銀IT人員招考試題

看板java作者 (swpoker)時間15年前 (2010/11/22 22:42), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串5/5 (看更多)
原文恕刪 這是我寫的 不過很奇怪 我竟然沒辦法用 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)
文章代碼(AID): #1Cwe5Ynn (java)
文章代碼(AID): #1Cwe5Ynn (java)