京东笔试第一题


import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		String s = in.nextLine();
		char[] chars = s.toCharArray();
		int num = 1;
		int k =1;
		for(int i=0;i<chars.length;i++){
			if(chars[i]=='(')
				num = num*k++;
			else
				k--;
		}
		System.out.println(num);
		
	}
}


第一题代码不难,主要是找规律。。

基本情况就是()()、(())、(()()),第三种情况代表各种组合情况。然后找规律,最后找到的规律是定义两个变量sum=1和k=1,遇到(就sum*=k++,遇到)k--。

求第二题思路和代码,一点思路都没有,靠暴力通过了10%

#京东##Java工程师#
全部评论
第一题没有找到规律,回溯可以过100%,第二题直接打印测试用例都是10%哈哈哈
点赞 回复 分享
发布于 2017-09-08 21:37
是怎么个思路呢?  看代码看不懂啊  大神
点赞 回复 分享
发布于 2017-09-08 21:34
你这个题通过了吗??????? 这种情况 (((()()))) 为96吗?
点赞 回复 分享
发布于 2017-09-08 21:20
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.text.DecimalFormat; import java.util.*; /** * Created by humac on 2017/9/7. */ public class Main { public static void main(String args[]) throws IOException { Scanner sc=new Scanner(System.in); while (sc.hasNext()){ String s=sc.next(); } } private static void function(String s) { Queue queue=new LinkedList(); int count=1; char [] chars=s.toCharArray(); queue.add(chars[0]); for (int i=1;i<chars.length;i++){ if (chars[i]=='('){ queue.add(chars[i]); }else { count=count*queue.size(); queue.poll(); } } System.out.println(count); } }
点赞 回复 分享
发布于 2017-09-08 21:18
哈哈哈哈哈找到规律就简单了
点赞 回复 分享
发布于 2017-09-08 21:16

相关推荐

不愿透露姓名的神秘牛友
07-11 11:22
怎么这么多逆天求职者,救救我救救我救救我😭
flmz_Kk:哈哈哈哈哈哈,这么多求职者,肯定有那一两个逆天的
点赞 评论 收藏
分享
代码飞升:别用口语,后端就写后端,前端就写前端,最后别光后悔
点赞 评论 收藏
分享
05-26 10:24
门头沟学院 Java
qq乃乃好喝到咩噗茶:其实是对的,线上面试容易被人当野怪刷了
找工作时遇到的神仙HR
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务