JS和java在牛客编程题上输入输出的总结

JS:

举例说明

简单来说,输入数据用readline()读取,输出结果用print() 或console.log()输出,下面举几个例子:

1.输入一行,输出一行

var line = readline();
print();
//或者
while(line = readline()){
    //Do some operation
    print();
}

2.输入两行,输出一行

var line = readline();
var num = parseInt(readline());
print();

3.输入数据有多组,每组单独占一行,对于输入的每组数据,对应输出多组,每组单独占一行(这种情况和例子1是一样的处理方法)

var line = readline();
print();
//或者
while(line = readline()){
    //Do some operation
    print();
}

4.输入数据有多组,每组占两行,对于输入的每组数据,对应输出多组,每组单独占一行(这种情况和例子2是一样的处理方法)

var line = readline();
var num = parseInt(readline());
print();

5.输入数据第一行表示测试样例数,接下来的n行表示n组测试样例,对于输入的每组测试样例,对应输出n组数据

var num = parseInt(readline());
while(line = readline()){
    //Do some operation
    print();
}

6.输入n行,输出一行

while(line = readline()){
    //Do some operation
}
print();

注意:上面的例子是读取输入数据和输出数据,读取到的数据还要处理。 
例如输入包括一行,用空格分开的两个正整数,那么用var line = readline()读取到输入数据之后,还要将读取到的字符串转为数组var arr = line.split(' ');然后经过var num1 = parseInt(arr[0]), num2 = parseInt(arr[1])读取到输入的两个正整数。总之,还需要多实践,慢慢就知道牛客网在线编程的套路了

 

 

java:

1、

//输入描述:

//输入包括2行:

//第一行为整数n(1 <= n <= 50),即抹除一个数之后剩下的数字个数

//第二行为n个整数num[i] (1 <= num[i] <= 1000000000)

import java.util.*;
public class Next {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int N=sc.nextInt();
        int[] num = new int[N];
        for (int i = 0; i < N; i++) {
            num[i] = sc.nextInt();
        }
        //System.out.println("hallo");
    }

}

2、

import java.util.*;
public class Main{

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        char[] arr = str.toCharArray();
   }}

3、

输入描述:

输入包括n+1行:

第一行为单词个数n(1 ≤ n ≤ 50)

接下来的n行,每行一个单词word[i],长度length(1 ≤ length ≤ 50)。由小写字母构成

输出描述:

输出循环单词的种数

 

输入例子:

5
picture
turepic
icturep
word
ordw

 

输出例子:

2

package string.test;
import java.util.Scanner;
public class Demo1 {
    private int N;
    private String[] arr;
    private int count;
    public static void main(String[] args) {
        Demo1 demo = new Demo1();
        Scanner sc = new Scanner(System.in);
        demo.N = sc.nextInt();
        demo.arr = new String[demo.N];
        for (int i = 0; i < demo.N; i++) {
            String str = sc.next();
            demo.solve(str);
        }
        System.out.println(demo.count);
        for (int i = 0; i < demo.count; i++) {
            System.out.println(demo.arr[i]);
        }
        sc.close();
    }
    private void solve(String str) {
        if (count == 0) {
            arr[0] = str + str;
            count++;
            return;
        }
        boolean flag = false;
        int num = count;
        for (int i = 0; i < num; i++) {
            //如果包含该单词,吧flag设置成ture,循环结束要记得把flag重新设置成false
            if (judge(arr[i], str)) {
                flag = true;
                break;
            }
        }
        if (flag != true) {
            arr[count++] = str + str;
 
        }
        flag = false;
    }
    /*
     * 如果str1包含str2.则返回true
     */
    private boolean judge(String str1, String str2) {
        if (str1.length() == str2.length())
            return false;
        //这里必须要验证str2是否为str1的一半,否则会无法通过
        if (str1.contains(str2) && str1.length() == str2.length() * 2)
            return true;
        return false;
    }
}
 

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值