Массив строк в Java, дающий разные значения для одного и того же ввода - PullRequest
0 голосов
/ 04 сентября 2018

Ниже приведены два кода, которые дают разные выходы для одного и того же входа. Во втором коде, если я введу значение s как 5 и q как 10 и элементы в строке s1 [] как Y, N, D, B, G и элементы в строке s2 [] как Y, Y, G, B , G, N, B, N, D, GI получают 0 в качестве вывода, но в первом коде я получаю 1 в качестве вывода.

import java.io.*;
public class Ch
{
 public static void main()throws IOException
 {
    InputStreamReader read = new InputStreamReader(System.in);
    BufferedReader in = new BufferedReader(read);
    int k=0, max=0,i,j,count;
    int sw=-1;
    String s1[]={"Y","N","D","B","G"};
    String s2[]={"Y","Y","G","B","G","N","B","N","D","G"};

    while(k<10)
    {
        for(i=0;i<5;i++)
        {
            count=0;
            for(j=k;j<10;j++)
            {
                if(s1[i]!=s2[j])
                    count++;
                if(s1[i]==s2[j])
                    break;
            }
            if(count>max)
            {
                max=count;
            }
        }
        sw++; k=k+max; max=0;
    }
    System.out.println(sw);
}
}

 ______________________________


import java.io.*;
public class Ch1
{
public static void main()throws IOException
{
    InputStreamReader read = new InputStreamReader(System.in);
    BufferedReader in = new BufferedReader(read);
    int k=0, max=0,i,j,count=0;
    int sw=-1;
    String s1[];
    String s2[];
    System.out.println("Please enter the number of search engines");
    int s=Integer.parseInt(in.readLine());
    s1=new String[s];
     for(i=0;i<s;i++)
    {
    s1[i]=in.readLine();
    }
    System.out.println("Please enter the number of queries");
    int q=Integer.parseInt(in.readLine());
    s2=new String[q];

    for(i=0;i<q;i++)
    {
    s2[i]=in.readLine();
    }
    while(k<q)
    {
        for(i=0;i<s;i++)
        {
            count=0;
            for(j=k;j<q;j++)
            {
                if(s1[i]!=s2[j])
                    count++;
                if(s1[i]==s2[j])
                    break;
            }
            if(count>max)
            {
                max=count;
            }
        }
        sw++; k=k+max; max=0;
    }
    System.out.println(sw);
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...