PTC笔试题

前些天参加了PTC的笔试,40分钟两道编程题。现把两道题整理出来分享给大家。

1. Input: 一个String数组,例如:

String[] list = { "aabb", "bbaa", "ccbb", "bbcc", "ccdd", "baab" };

Output: 返回数组中不同元素的个数。

Notes: 假设上面数组中的 “aabb”, "bbaa" 以及 “baab”为相同的元素。所以输入上面的数组则返回3

代码如下:

import java.util.Arrays;
import java.util.HashSet;

public class helloWorld {

	public static void main(String[] args) {
		String[] list = { "aabb", "bbaa", "ccbb", "bbcc", "ccdd", "baab" };
		System.out.println(Count(list));
	}

	private static int Count(String[] list) {
		HashSet<String> tmpset = new HashSet<String>();

		for (int i = 0; i < list.length; i++) {
			char[] chr = list[i].toCharArray();
			Arrays.sort(chr);
			tmpset.add(String.valueOf(chr));
		}
		return tmpset.size();
	}
}

2. Input: 一个int数组,例如:

int[] list = {1, 5, 7 };
Notes: 上面的数组由三部分组成x+y, x-y 和混淆视听的值

Output: 返回x*y的最大值

代码如下:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;

public class getMaxnum {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		int[] list = { 5, 7 };
		System.out.println(Count(list));

	}

	private static int Count(int[] list) {
		ArrayList<Integer> arrlist = new ArrayList<Integer>();
		Arrays.sort(list);

		for (int i = (list.length - 1); i >= 0; i--) {
			for (int j = i - 1; j >= 0; j--) {
				if ((list[i] * list[i] - list[j] * list[j]) % 4 == 0) {
					arrlist.add((list[i] * list[i] - list[j] * list[j]) / 4);
				}
			}
		}
		Collections.sort(arrlist);

		return arrlist.get(arrlist.size() - 1);
	}

}

上面的题目经过了我过滤,实际的笔试题全是英文描述,而且有一定的迷惑性。40分钟内完成亚历山大。

代码有不足之处,欢迎大虾们拍砖。

你可能感兴趣的:(PTC笔试题)