| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 963 人关注过本帖
标题:求助 零件问题,放Oj上就会报错
只看楼主 加入收藏
掌灯
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2021-5-6
收藏
 问题点数:0 回复次数:0 
求助 零件问题,放Oj上就会报错
代码放OJ上就会出现错误

有一种工业零件,分成左右两半,它们的形状由’X’和空格表示的二维图形表示,比如:左半的零件形状如下:
XXXXX
XXX
XXXX
XXX
右半的零件的形状如下
                    XXX                                                               
                  XXXX                                                               
                  XXXX                                                               
                XXXXX                                                               
所有的左半边的零件的左边第一列都是X,所有右半的零件的右边第一列都是X。
把这样的左右两个零件紧密地拼在一起,则可能存在空洞。零件本身也可能有空洞,但不会存在断裂的零件,每个空洞为一个空格,要求你写一个程序求出空洞的大小(空格的数目)。


输入:
 
第一行是一个整数K,表示有多少个测试用例,以后每一个测试用例占2n+1行。每个测试用例的第一行为一个整数n,(1<=n<=20),从第2行到n+1行为左半零件的二维图形,从第n+2行到2n+1行为右半零件。左半零件左对齐,最长一行不超过25列,
右半零件右对齐,最长一行不超过25列


输出:

每行输出一个测试用例的结果。
 
Sample Input

2
4
XXXXX
XXX
XXXX
XXX
  XXX
 XXXX
 XXXX
XXXXX
2
XXXXX
X
XXXXX
  XXX

 
Sample Output

1
6

 
我的代码是
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = Integer.parseInt(scanner.nextLine());
        while (num-- != 0) {
            int n =Integer.parseInt(scanner.nextLine());
            String str = "";
            int numberOfX = 0;

            int[] arrNumberOfX1 = new int[n];
            for (int i = 0; i < n; i++) {
                str = scanner.nextLine();
                numberOfX = str.trim().length();
                arrNumberOfX1[i] = numberOfX;
            }


            int[] arrNumberOfX2 = new int[n];
            for (int i = 0; i < n; i++) {
                str = scanner.nextLine();
                numberOfX = str.trim().length();
                arrNumberOfX2[i] = numberOfX;
            }

            int[] arrNumberOfX = new int[n];
            int sumOfX = 0;
            int maxNumberOfX = 0;
            for (int i = 0; i < n; i++) {
                arrNumberOfX[i] = arrNumberOfX1[i] + arrNumberOfX2[i];
                if (arrNumberOfX[i] > maxNumberOfX) {
                    maxNumberOfX = arrNumberOfX[i];
                }
                sumOfX += arrNumberOfX[i];
            }

            int result = maxNumberOfX * n - sumOfX;
            System.out.println(result);
        }
    }
}
搜索更多相关主题的帖子: int str 测试 Scanner 一行 
2021-05-06 01:27
快速回复:求助 零件问题,放Oj上就会报错
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017230 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved