阅读 31630 次
发表时间:2010-07-21
考的应该还有程序的可拓展性吧。要不然两道题三个小时也太。。。
发表时间:2010-07-21
sfgrgw 写道
这结果对不
 for(int i=102 ;i<329;i++)
		{
			String numStr = String.valueOf(i)+String.valueOf(i*2)+String.valueOf(i*3);
			Set charSet = new HashSet();
			for(char ch : numStr.toCharArray())
				charSet.add(ch);
			if(charSet.size() == numStr.toCharArray().length)
				System.out.println(i+"  "+i*2+"  "+i*3);
		}



比较有创意啊。不过题中是没有0的。最小是123
发表时间:2010-07-21
jiangfeng2007 写道

1.逆波兰表达式

2.代码如下:

public static void main(String[] args) {
		int m = 0;
		int n = 0;
		String str = null;
		for(int i=123;i<345;i++){
			m = i*2;
			n = i*3;
			str = "" + i + m + n;
			byte[] b = str.getBytes();
			Arrays.sort(b);
			str = new String(b);
			if("123456789".equals(str)){
				System.out.println(i + ";" + m + ";" + n);
			}
		}
	}

   测试结果:

192;384;576
219;438;657
273;546;819
327;654;981

 

经典,当初我怎么没有想到呢,唉,真后悔!!!

发表时间:2010-07-21
为这篇贴我写一个(当然,不全是因为这个原因)

支持以下几个功能:

1.负数
2.四则运算
3.支持变量
4.自定义函数

public static void main(String[] args) {   
        String exp = "mod(11,3)+2*a*t*t";   
        try {   
            Node expNode = parse(exp);   
            expNode.setVariable("a", 10);   
            expNode.setVariable("t", 2);   
            if (expNode != null)   
                System.out.println(expNode + "=" + expNode.getValue());   
        } catch (Exception e) {   
            e.printStackTrace();   
        }   
    

未经严格测试,不过希望对你有所帮助

地址: http://drift-ice.iteye.com/blog/718592
发表时间:2010-07-21
beeke 写道
第一题显然是编译原理题
词法分析然后递归下降
当然你如果熟悉javacc antlr会很快

第二题暴力+优化(比如第一个数不可能大于250)

这两道题能在三个小时内做对的不多


第二道题还是暴力破解来的快,第一个数怎么不可能大于250,327就是个例子
发表时间:2010-07-21
import Data.List

main =
  print $ filter (\a_ ->
                   let a = 100 * head a_ + 10 * (a_ !! 1) + last a_
                       b = show (2 * a)
                       c = show (3 * a) in
                   length b <= 3 && length c <= 3 &&
                   all (\b_ -> b_ `notElem` show a) b && length (nub b) == length b &&
                   all (\c_ -> c_ `notElem` show a) c && length (nub c) == length c
                 ) $ nub $ filter ((>=) 3 . head) $ map (take 3) $ permutations $ take 9 [ 1.. ]


[ [2,7,3]
, [3,2,7]
, [2,6,7]
, [1,7,6]
, [2,3,8]
, [1,8,2]
, [2,1,8]
, [1,7,8]
, [2,6,9]
, [1,9,2]
, [2,1,9]]
发表时间:2010-07-21
第一个好像数据结构的堆栈!
发表时间:2010-07-21
public void testData(){
        HashSet set;
        for(int i=123;i<333;i++){
            set = new HashSet();
            int t = i;
            getPerNum(set, t);
            int t1 = i*2;
            getPerNum(set, t1);
            int t2 = i*3;
            getPerNum(set, t2);
            if(set.size()==9&&!set.contains(0)){
                System.out.println("i = " + i);
            }
        }
    }

    private void getPerNum(HashSet set, int t) {
        while(t>0){
            set.add(t%10);
            t = (t/10);
        }
    }
发表时间:2010-07-21
gsJason 写道
考的应该还有程序的可拓展性吧。要不然两道题三个小时也太。。。

第一题,如果没资料,建操作符优先表还是要点时间的.
发表时间:2010-07-22
紫轩侠客 写道
jiangfeng2007 写道

1.逆波兰表达式

2.代码如下:

public static void main(String[] args) {
		int m = 0;
		int n = 0;
		String str = null;
		for(int i=123;i<345;i++){
			m = i*2;
			n = i*3;
			str = "" + i + m + n;
			byte[] b = str.getBytes();
			Arrays.sort(b);
			str = new String(b);
			if("123456789".equals(str)){
				System.out.println(i + ";" + m + ";" + n);
			}
		}
	}

   测试结果:

192;384;576
219;438;657
273;546;819
327;654;981

 

经典,当初我怎么没有想到呢,唉,真后悔!!!


怎么我写出来的代码跑出来的结果比你们要多一组呢。。。

 

public void method_1(){
		for (int i = 123; i <=333; i++) {
			String temp = i+""+(i*2)+""+(i*3);
			if(method_2(temp)){
				System.out.println(i+" "+(i*2)+" "+(i*3));
			}
		}
	}
	
	public boolean method_2(String str){
		try {
			Map<String, Integer> map = new HashMap<String, Integer>();
			for (int i = 0; i <= str.length(); i++) {
				if(map.containsKey(str.charAt(i)+"")){
					return false;
				}else{
					map.put(str.charAt(i)+"", i);
				}
			}
			return true;
		} catch (Exception e) {
			return true;
		}
	}
结果:
192  384  576
219  438  657
267  534  801
273  546  819
327  654  981
 

 

Global site tag (gtag.js) - Google Analytics