zoukankan      html  css  js  c++  java
  • Topcoder tournaments Inv 2001R1

    250:
    public class HowEasy {
    	public static void main(String[] args) {
    		HowEasy m = new HowEasy();
    		System.out.println(m.pointVal("This is a problem statement"));
    		System.out.println(m.pointVal("523hi."));
    		System.out.println(m.pointVal("Implement a class H5 which contains some method."));
    		System.out.println(m.pointVal(" no9 . wor7ds he8re. hj.."));
    	}
    	public int pointVal(String str) {
    		int s=0,e=0;
    		int wordNum=0,charNum=0;
    		int len = str.length();
    		str = str.trim();
    		String[] strs = str.split(" ");
    		for (String string : strs) {
    			if(string.matches("[a-zA-Z]+\\.?")) {
    				charNum++;
    				wordNum+=string.length();
    				if(string.endsWith(".")) {
    					wordNum--;
    				}
    			}
    			//System.out.println(string+"  charNum:"+charNum+"  wordNum:"+wordNum);
    		}
    		if(0==wordNum) {
    			return 250;
    		}
    		int judge = wordNum / charNum;
    		if(judge<=3) {
    			return 250;
    		} else if(4==judge||5==judge) {
    			return 500;
    		} else {
    			return 1000;
    		}
    	}
    }
    

      

    1000:

    Problem Statement

        
    ***Note:  Please keep programs under 7000 characters in length.  Thank you
    
    
    Class Name: Prerequisites
    Mathod Name: orderClasses
    Parameters: String[]
    Returns: String[]
    
    You are a student at a college with the most unbelievably complex prerequisite
    structure ever. To help you schedule your classes, you decided to put together
    a program that returns the order in which the classes should be taken.  
    
    Implement a class Prerequisites which contains a method orderClasses.  The
    method takes a String[] that contains the classes you must take and returns a
    String[] of classes in the order the classes should be taken so that all
    prerequisites are met.
    
    String[] elements will be of the form (and TopCoder will ensure this):
    "CLASS: PRE1 PRE2 ..." where PRE1 and PRE2 are prerequisites of CLASS.  CLASS,
    PRE1, PRE2, ... consist of a department name (3 or 4 capital letters, A-Z
    inclusive) followed by a class number (an integer between 100 and 999,
    inclusive).  The department name should be immediately followed by the class
    number with no additional characters, numbers or spaces (i.e. MATH217).  It is
    not necessary for a class to have prerequisites.  In such a case, the colon is
    the last character in the String.  
    
    You can only take one class at a time, therefore, use the following rules to
    determine which class to take :
    1) Any prerequisite class(es) listed for a class must be taken before the class
    can be taken.
    2) If multiple classes can be taken at the same time, you take the one with the
    lowest number first, regardless of department.
    3) If multiple classes with the same number can be taken at the same time, you
    take the department name which comes first in alphabetical order.  
    4) If the inputted course schedule has errors, return a String[] of length 0.
    There is an error if it is impossible to return the classes in an order such
    that all prerequisites are met, or if a prerequisite is a course that does not
    have its own entry in the inputted String[].
    
    Examples of valid input Strings are:
    "CSE111: CSE110 MATH101"
    "CSE110:"
    
    Examples of invalid input Strings are:
    "CS117:" (department name must consist of 3 - 4 capital letters, inclusive)
    "cs117:" (department name must consist of 3 - 4 capital letters, inclusive)
    "CS9E11:" (department name must be letters only)
    "CSE110: " (no trailing spaces allowed)
    "CSE110: CSE101 " (no trailing spaces allowed)
    "MATH211: MAM2222" (class number to large)
    "MATH211: MAM22" (class number to small)
    "ENGIN517: MATH211" (department name to large)
    
    Here is the method signature (be sure your method is public):
    String[] orderClasses(String[] classSchedule);
    
    TopCoder will make sure classSchedule contains between 1 and 20 Strings,
    inclusive, all of the form above.  The Strings will have between 1 and 50
    characters, inclusive.  TopCoder will check that the syntax of the Strings are
    correct: The Strings will contain a valid class name, followed by a colon,
    possibly followed by a series of unique prerequisite classes separated by
    single spaces.  Also, TopCoder will ensure that each class has at most one
    entry in the String[]. 
    
    Examples:
    If classSchedule={
    "CSE121: CSE110",
    "CSE110:",
    "MATH122:",
    }
    The method should return: {"CSE110","CSE121","MATH122"}
    
    If classSchedule={
    "ENGL111: ENGL110",
    "ENGL110: ENGL111"
    }
    The method should return: {}
    
    If classSchedule=[
    "ENGL111: ENGL110"
    }
    The method should return: {}
    
    If classSchedule={
    "CSE258: CSE244 CSE243 INTR100"
    "CSE221: CSE254 INTR100"
    "CSE254: CSE111 MATH210 INTR100"
    "CSE244: CSE243 MATH210 INTR100"
    "MATH210: INTR100"
    "CSE101: INTR100"
    "CSE111: INTR100"
    "ECE201: CSE111 INTR100"
    "ECE111: INTR100"
    "CSE243: CSE254"
    "INTR100:"
    }
    The method should return:
    {"INTR100","CSE101","CSE111","ECE111","ECE201","MATH210","CSE254","CSE221","CSE2
    43","CSE244","CSE258"}

    Definition

        
    Class: Prerequisites
    Method: orderClasses
    Parameters: String[]
    Returns: String[]
    Method signature: String[] orderClasses(String[] param0)
    (be sure your method is public)
        
     

    This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2003, TopCoder, Inc. All rights reserved.     

  • 相关阅读:
    敏捷开发设计模式的五大原则(读敏捷软件开发:原则、模式与实践笔记记录一下)
    使用AOP和Semaphore对项目中具体的某一个接口进行限流
    java正则使用全记录!
    推荐一本书学习springcloud书籍的SpringCloud微服务全栈技术与案例解析
    使用springboot Admin 2.0.6版本 集成监控springcloud微服务应用
    推荐一本学习Groovy的书籍Groovy程序设计!
    Datagrip 快捷键和常用插件持续更新一集一些使用技巧
    Eclipse中项目不会自动编译问题的坑和注意点
    使用Groovy的mixin方法注入,和mixedIn属性实现过滤链
    vscode常用快捷键和插件(持续更新),以及一些常用设置的坑和技巧
  • 原文地址:https://www.cnblogs.com/TLightSky/p/2400831.html
Copyright © 2011-2022 走看看