第三题结束后自己琢磨的提供个思路,而且这个输入应该怎么处理,中间可能有多个空行 public static int maxCount=0; int start=0; int end=al.size(); for (int i = start; i < end; i++) { if(al.get(i).matches(" *for.*\\(.*")){start=i; int mark=0; for (int j = i; j < end; j++) { if(al.get(j).indexOf('{')>-1){mark++;}if(al.get(j).indexOf('}')>-1){ mark--; }if(mark==0){ end=j;break;} } dfs(al,count+1,start+1,end); i=end; } } System.out.println(maxCount); } public static void dfs(ArrayList<String> al, int count, int x,int y){ if(count>maxCount)maxCount=count; int start=0; int end=0; for (int i = x; i < y; i++) { if(al.get(i).matches(" *for.*\\(.*")){ start=i; int mark=0; for (int j = i; j <y; j++) { if(al.get(j).indexOf('{')>-1){ mark++; } if(al.get(j).indexOf('}')>-1){ mark--; } if(mark==0){ end=j;break; } } dfs(al,count+1,start+1,end); i=end;} } }
1 2

相关推荐

每晚夜里独自颤抖:把华北改为华南再试一试,应该就没啥问题了。改完可能都不用投,别人主动联系了。
点赞 评论 收藏
分享
LemontreeN:有的兄弟有的我今天一天面了五场,4个二面一个hr面
投递字节跳动等公司7个岗位
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务