題目:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1819
解法概念:假設每行oooo.ooo由左到右分別是2^6,2^5,2^4.....2^0,有圈的位數做相加,相加的值即為ASCII碼,之後轉成字元輸出
import java.util.*;
import java.lang.*;
import java.lang.Math;
public class Main{
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
char[] decodedChar =new char[100000];
int index=0;
int count =0;
int size=0;
boolean can=true;
while(count!=2){
size++;
String encodedLine = console.nextLine();
can =true;
int exp=7,ascii=0;
for(int i=0 ; i<encodedLine.length();i++){
if(encodedLine.charAt(i)=='_'){
can=false;
count++;
break;
}
else if(encodedLine.charAt(i)=='|'||encodedLine.charAt(i)=='.')
continue;
else if(encodedLine.charAt(i)=='o')
ascii+=Math.pow(2, exp);
exp--;
}
if(can){
decodedChar[index]=(char)ascii;
index++;
}
}
String temp = new String(decodedChar);
String output = temp.substring(0,size-2);
System.out.print(output);
}
}
沒有留言:
張貼留言