[iT铁人赛Day27]练习题(6)

第二十七天来讲到第六题练习题
这题题目有点冗长,害得我当时都有点懒得看了
题目大意是:要写一个程序自动评测系统
输入规格是:
n组题目资料
n行
m组检测资料
m行
然後n跟m资料比对
Accepted:资料完全一样
Presentation Error:有一个以上的字元不一样,"150" "15 0"这样算属於字元不一样
Wrong answer:如果上面两种都不符合,就输出这个
输出格式:
Run #num: 答案。
Simple input是
https://ithelp.ithome.com.tw/upload/images/20210927/20140567zDmtxzKUTa.png
https://ithelp.ithome.com.tw/upload/images/20210927/20140567QTBVTfYGwk.png
程序码如下:

import java.util.*;
public class main{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int cases=1;
		int n1;
		while((n1=sc.nextInt())!=0){
			sc.nextLine();
			String s1 = "";
			for(int i=0;i<n1;i++){
				s1+=sc.nextLine();
			}
			int n2=sc.nextInt();
			sc.nextLine();
			String s2 = "";
			for(int i=0;i<n2;i++){
				s2+=sc.nextLine();
			}
			System.out.print("Run #"+cases+": ");
			cases++;
			if(s1.equals(s2) && n1==n2) System.out.println("Accepted "+s1.length());
			else{
				if(s1.replaceAll("\\s","").equals(s2.replaceAll("\\s","")))
					System.out.println("Presentation Error "+s1.length());
				else System.out.println("Wrong Answer "+s1.length());
			} 
		}
	}
}

解题方式上面都讲了
这边稍微讲一下答案的呈现方式
如果s1.equals(s2)和n1==n2,&&是代表and,意思是两个条件都必须成立。
然後输出Accepted "+s1.length(),s1.length()显示s1的长度
如果s1.replaceAll("\s","").equals(s2.replaceAll("\s",""))
那输出Presentation Error "+s1.length(),s1.length()一样显示s1的长度
如果两者都不是就显示Wrong Answer "+s1.length()。
然後简单讲解一下nextInt跟nextLine的差别
差别在於nextInt只读取数字,nextLine则整串读取。
再讲解一下Simple input
第一组输入是n1=2,读取The answer is : 10
The answer is : 5
第二组输入是n2=2,读取The answer is : 10
The answer is : 5
因为两者输入一样,所以输出Run #1: Accepted 33
其他组资料可以自己稍微练习验算一下
输出结果如下:
https://ithelp.ithome.com.tw/upload/images/20210927/201405678ZGm6udaOt.png


<<:  [Day26]C# 鸡础观念- 物件导向(oop)~ 多载(Overload)

>>:  [Day23] Rust 直接使用资料库语法操作资料库 (Part2)

【资料结构】树的操作 -引线,堆积,二元搜寻树

上篇连结:树的定义与追踪 引线树 n个树叶中,会产生n+1个多余的NULL空间浪费,因此建立有用的引...

[Day 3] SRE - Log写好一点,对团队好一些

LogSeverity 有在写Log的人都知道Log需要被分级,而分级对於问题的除错,是很重要的,当...

Day14【Web】网路攻击:域名劫持

域名劫持又称作域名污染 英文有多种称呼方式: DNS hijacking DNS poisoning...

Day 30 - 故事的最後不是句点,是开始

我成功了吗 经过了这段特别长的暑假,我好像学会了蛮多的东西的!我想对於一个有严重拖延症的患者而言,我...

JavaScript Day 5. 型别辨识 typeof

偶尔程序也会碰到需要辨别变数的状态,有时候是用於防止使用者输入奇怪的文字,有时候是帮助自己确认变数的...