本站首页 返回顶部 关于博主

Problem A. Magic Trick解答

PDF版
原题链接:Problem A. Magic Trick

这一题6分,题目要求可简化如下:
前提条件:
1. 给定A和B两个4 x 4 的矩阵,两个矩阵中都填充了1 ~ 16这16个数字(每个矩阵中的数字都唯一)。
2. 取出矩阵A中指定某一行的4个数字;
3 .取出矩阵B中指定某一行(可能与第2步中行数相同)的4个数字。
要求:
判断步骤2中的数字与步骤3中的数字是否包含相同的数字。如果有且只有一个相同数字,那么输出这个相同的数字;如果没有相同的数字,则输出“Volunteer cheated!“;如果相同的数字个数大于或等于2,则输出“Bad magician!”。

解答:
把两组数字分别放到两个数组中,逐个比较这两个数组,然后把相同的数字放到一个list中,最后判断list.size()即可。函数实现如下
	private List<String> processTrickPair( String[] values1, String[] values2)
	{
		List<String> ret = new ArrayList<String>();
		for( int i = 0; i < values1.length; i ++ )
		{
			for( int j = 0; j < values2.length; j ++ )
			{
				if( values1[i].equals( values2[j]))
				{
					ret.add( values1[i] );
				}
			}
		}
		return ret;
	}
源代码下载:MagicTrick.java



请你留言