TopCoder
の問題を解決しています。ここでは、String[]
を返さなければならないメソッドを記述する必要があります。これは、エラーなしで私の方法、およびその作業です:javaメソッドのString []配列をカンマなしで返す
public static String[] decode(String encoded)
{
char[] test = encoded.toCharArray();
int[] decode_arr = new int[test.length];
String[] result = new String[2];
boolean flag= false;
for(int i=0;i<2;i++)
{
flag = false;
decode_arr[0] = i;
decode_arr[1] = Character.getNumericValue(test[0])-decode_arr[0];
for(int x=2;x<test.length;x++)
{
decode_arr[x] = Character.getNumericValue(test[x-1]) - decode_arr[x-2]-decode_arr[x-1];
if(decode_arr[x]>1 || decode_arr[x]<0)
flag=true;
}
if(!flag)
result[i] = Arrays.toString(decode_arr);
else
result[i] = "NONE";
//System.out.println(Arrays.toString(decode_arr));
decode_arr = null;
decode_arr = new int[test.length];
}
return result;
}
今問題が出力された場合、コンパイラは、例えば、カンマなしで値を期待している:
"01101001101101001101001001001101001", "10110010110110010110010010010110010"
私が得る何をすべきか次のとおりです。
[0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0 , 0, 1, 1, 0, 1, 0, 0, 1] [1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0 , 1, 0, 1, 1, 0, 0, 1, 0]
私は、任意の一般的な微調整をしないのですか私は、出力Aをトリミングすることになっていますそれはそれが仮定されている方法で提出する?親切に助けてください!
私の推測では、Arrays.toString(decode_arr);は正しい選択ではありません。予想される文字の 'char []'を構築し、これを 'String'に変換することをお勧めします。 –
出力は常に0または1になりますか? – SMA