码迷,mamicode.com
首页 > 其他好文 > 详细

配置文件恢复

时间:2015-08-20 20:57:37      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

我自己写的:但是不知道什么问题 拿不到 满分 总是 测试错误 ,请看到的大神 指点下

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;

// 要是能用Scala 就简单多了呀
public class PeiZhiWenJianHuiFu {	
	private static Map<Integer,String>  comm = new HashMap<Integer,String>();
	private static void init(){
		comm.put(1,"reset board&board fault");
		comm.put(2,"board add&where to add");
		comm.put(3,"board delete&no board at all");
		comm.put(4,"reboot backplane&impossible");
		comm.put(5,"backplane abort&install first");
	}

	public static void main(String[] args){
		// TODO Auto-generated method stub
		init();
		Scanner sc = new Scanner(System.in);
		List<String> list = new ArrayList<String>();
		String s = "";
		while(sc.hasNextLine()){
			s = sc.nextLine();
			if(s.equals(""))
				break;
			list.add(s);	
		}
		
		for(String li:list){
			//System.out.println(li);
			if(li.contains(" ")){
				match_2(li);
			}			
			else{
				match_1(li);
			}
		}
				
	}

	private static void match_2(String string){
		 String [] s = string.split(" ");
		 int count = 0;
		 String res = "";
		 if(s.length != 2){
			 System.out.println("unkonw command");
		 }
		 
		 for(int i=1; i<=comm.size();i++){
			 //System.out.println(comm.get(i));
			 String[] tmp = comm.get(i).split("&"); // 
			 String[] tmp1 = tmp[0].split(" ");
			 if(s[0].length()>tmp1[0].length() || s[1].length()>tmp1[1].length()){
				continue;
			 }
 			 if(s[0].equals(tmp1[0].substring(0, s[0].length())) && s[1].equals(tmp1[1].substring(0, s[1].length()))){
				 count++;
				 res = tmp[1];
			 }
		 }
		 
		 if(count == 1){
			 count = 0;
			 System.out.println(res);
		 }else{
			 count = 0;
			 System.out.println("unkonw command");
		 }
			
	}

	private static void match_1(String string) {
		int len=string.length();
		if(string.equals("reset".substring(0, len)))
			System.out.println("reset what");
		else
			System.out.println("unkonw command");
	}

}

在网上找了一份代码,却是可以满分:无语了

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class test14 {
	public static void main(String[] arg0){
		Scanner sc = new Scanner(System.in);
		List<String> list = new ArrayList<String>();
		String str = "";
		while(sc.hasNextLine()){
			str = sc.nextLine();
			if(str.equals(""))break;
			list.add(str);
		}		
		for(int i = 0; i < list.size(); i++){
			System.out.println(execute(list.get(i).split(" ")));
		}
	}	
	static String[] commands = {"reset","reset board","board add","board delet","reboot backplane","backplane abort"};
	static String[] result = {"reset what","board fault","where to add","no board at all","impossible","install first"};
	public static String execute(String[] str){
		String re = "";
		if(str.length == 1){
			if(commands[0].startsWith(str[0])) re = result[0];
			else{
				for(int i = 1; i < commands.length; i++){
					if(commands[i].startsWith(str[0])) {
						re = "unkown command";
						break;
					}
				}				
				if(re.equals("")) re = "unkown command";
			}
		}else if(str.length == 2){
			int hasfit = 0;
			int index = -1;
			for(int i = 1; i < commands.length; i++){
				String[] comm = commands[i].split(" ");
				if(comm[0].startsWith(str[0]) && comm[1].startsWith(str[1])){
					index = i;
					hasfit ++;
				}
			}		
			if(hasfit == 1) re = result[index];
			else re = "unkown command";
		}else{
			re = "unkown command";
		}
		return re;
	}
}






版权声明:本文为博主原创文章,未经博主允许不得转载。

配置文件恢复

标签:

原文地址:http://blog.csdn.net/feige1990/article/details/47808155

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!