[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
(難易度 超簡単, 目標時間 10分以内)
与えられた英語の大文字で構成された文字列の中の文字を、与えられた数字の分だけ左にシフトさせなさい。たとえば、’C’を2つ左にシフトさせると’A’、’Z’を2つ左にシフトさせると’X’。
与えられる英語の文字列はAからZで、Aの次はZにシフトさせるものとする。
例1)
"VQREQFGT"
2
Returns: "TOPCODER"
例2)
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
10
Returns: "QRSTUVWXYZABCDEFGHIJKLMNOP"
例3)
"TOPCODER"
0
Returns: "TOPCODER"
例4)
"LIPPSASVPH"
4
"HELLOWORLD"
クラス名: CCipher
メソッド名: decode
メソッドの引数: String , int
リターン: String
メソッド: String decode(String ciphertest, int shift)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
なんで40分も時間がかかってしまったかというと、アルファベットを数値化することにとらわれていて、public class CCipher {
public static String decode(String cipheretest,int shift){
char[] charArray=cipheretest.toCharArray();
char[] ansCharArray=new char[cipheretest.length()];
int[] intArray=new int[charArray.length];
for(int i=0;i<charArray.length;i++){
intArray[i]=(int)(charArray[i]);
if(intArray[i]-shift<65){
ansCharArray[i]=(char)(intArray[i]-shift+26);
}else{
ansCharArray[i]=(char)(intArray[i]-shift);
}
}
return String.valueOf(ansCharArray);
}
}
public class CCipher {
public String decode(String chipher, int shift){ char[] chs = chipher.toCharArray(); for(int i=0,len=chs.length; i<len; i++){ for(int j=shift; j>0; j--){
if (chs[i] == 'A') chs[i] = 'Z';
else chs[i] = (char)((int)chs[i] - 1);
} } return new String(chs); }}
この例では、いきなりshiftの値だけ動かすのではなく、 for文の中で一文字ずつシフトするようにしている。 こうすることで、ASCIIコードがわからなくてもコードを書く事が可能。 この発想は無かった! ってことで今日は固い技術系のお話でした! それではまた♪
尚、このキー設定ではWin+lのログオフ機能を上書きしています。#j::left ;Win+Hに←キーを割り当て
#k::down ;Win+Jに↓キーを割り当て
#i::up ;Win+Kに↑キーを割り当て
#l::right ;Win+Lに→キーを割り当て
#Space::Enter ;Win+SpaceにEnterを割り当て;
#vk1Dsc07B::Send, {vkF3sc029} ;Win+無変換に半角/全角を割り当て
#vk1Csc079::BS ;Win+変換にBSを割り当て
#vkF2sc070::Del ;Win+ひらがなにDelを割り当て