zoukankan      html  css  js  c++  java
  • 配置文件恢复

    描述

    有6条配置命令,它们执行的结果分别是:

    命   令 执   行
    reset reset what
    reset board board fault
    board add where to add
    board delet no board at all
    reboot backplane impossible
    backplane abort install first
    he he unkown command

     注意:he he不是命令。

    为了简化输入,方便用户,以“最短唯一匹配原则”匹配:
    1、若只输入一字串,则只匹配一个关键字的命令行。例如输入:r,根据该规则,匹配命令reset,执行结果为:reset what;输入:res,根据该规则,匹配命令reset,执行结果为:reset what;
    2、若只输入一字串,但本条命令有两个关键字,则匹配失败。例如输入:reb,可以找到命令reboot backpalne,但是该命令有两个关键词,所有匹配失败,执行结果为:unkown command
    3、若输入两字串,则先匹配第一关键字,如果有匹配但不唯一,继续匹配第二关键字,如果仍不唯一,匹配失败。例如输入:r b,找到匹配命令reset board和reboot backplane,执行结果为:"unkown command"。

    4、若输入两字串,则先匹配第一关键字,如果有匹配但不唯一,继续匹配第二关键字,如果唯一,匹配成功。例如输入:b a,无法确定是命令board add还是backplane abort,匹配失败。
    5、若输入两字串,第一关键字匹配成功,则匹配第二关键字,若无匹配,失败。例如输入:bo a,确定是命令board add,匹配成功。
    6、若匹配失败,打印“unkown command”

    知识点 字符串
    运行时间限制 0M
    内存限制 0
    输入

    多行字符串,每行字符串一条命令

    输出

    执行结果,每条命令输出一行

    样例输入 reset reset board board add board delet reboot backplane backplane abort
    样例输出 reset what board fault where to add no board at all impossible install first
    package com.oj.test;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Scanner;
    public class Test {
    	
    	private static String find(String str, Map<Integer, String> mapping, Map<Integer, String> base) {
    		String[] input = str.split(" ");
    		if(input.length==1&&"reset".startsWith(input[0]))
    			return mapping.get(1);
    		else if(input.length==2){
    			int[] flag = new int[7];
    			for(int i = 2;i <= 6; i++){
    				String[] test = base.get(i).split(" ");
    				if(test[0].startsWith(input[0])&&test[1].startsWith(input[1]))
    					flag[i] = 1;
    			}
    			int sum = 0;
    			for(int i = 0;i < 7; i++)
    				sum += flag[i];
    			if(sum==1){
    				for(int i = 0;i < 7; i++)
    					if(flag[i]==1)
    						return mapping.get(i);
    			}
    		}
    		return mapping.get(7);
    	}
    	
    	public static void main(String[] args) {
    		Map<Integer,String> mapping = new HashMap<Integer,String>();
    		mapping.put(1, "reset what");
    		mapping.put(2, "board fault");
    		mapping.put(3, "where to add");
    		mapping.put(4, "no board at all");
    		mapping.put(5, "impossible");
    		mapping.put(6, "install first");
    		mapping.put(7, "unkown command");
    		Map<Integer,String> base = new HashMap<Integer,String>();
    		base.put(1, "reset");
    		base.put(2, "reset board");
    		base.put(3, "board add");
    		base.put(4, "board delet");
    		base.put(5, "reboot backplane");
    		base.put(6, "backplane abort");
    		Scanner in = new Scanner(System.in);
    		String str;
    		while((str=in.nextLine()) != null){
    			System.out.println(find(str,mapping,base));
    		}
    		
    	}
    
    	
    }
    

      

    态度决定高度,细节决定成败,
  • 相关阅读:
    实验 3:Mininet 实验——测量路径的损耗率
    软件工程——第一次作业:自我介绍
    实验 2:Mininet 实验——拓扑的命令脚本生成
    实验1:Mininet源码安装和可视化拓扑工具
    软工作业第一次
    031802417 林宇杰
    导航控制器
    Xcode 简易计算器 (修改版)
    WSY的博客向导
    2021年8月11日训练笔记
  • 原文地址:https://www.cnblogs.com/lxk2010012997/p/5268085.html
Copyright © 2011-2022 走看看