Hackerrank 稀疏数组
Hackerrank Sparse Arrays
import java.io.*;
import java.util.*;
class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int nStrings = sc.nextInt();
String entries[] = new String[nStrings];
for (int i=0;i<nStrings;i++)
entries[i] = sc.nextLine();
sc.nextLine();
int nQueries = sc.nextInt();
String queries[] = new String[nQueries];
for (int i=0;i<nQueries;i++)
queries[i] = sc.nextLine();
sc.nextLine();
int result[] = new int[nQueries];
for (int i=0;i<nQueries;i++)
result[i] = 0;
for (int i=0;i<nQueries;i++){
for (int j=0;j<nStrings;j++){
if (queries[i].equals(entries[j]))
result[i]++;
else
continue;
}
}
System.out.println(Arrays.toString(result));
}
}
谁能帮我解决这个问题输出不太正确但代码似乎是正确的。似乎在比较查询和条目时存在一些问题,因为针对此输入交换了特定索引中的正确元素
4
aba
baba
aba
xbxa
3
aba
xbxa
s
输出为 [1, 2, 0]
但应该是 [2,1,0]
您在错误的步骤中使用了 sc.nextLine(); 指令...您应该在 sc.nextInt();.
下面的代码将通过所有测试用例...在您的代码进行一些更改后。
import java.io.*;
import java.util.*;
class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int nStrings = sc.nextInt();
sc.nextLine();
String entries[] = new String[nStrings];
for (int i=0;i<nStrings;i++)
entries[i] = sc.nextLine();
int nQueries = sc.nextInt();
sc.nextLine();
String queries[] = new String[nQueries];
for (int i=0;i<nQueries;i++)
queries[i] = sc.nextLine();
int result[] = new int[nQueries];
for (int i=0;i<nQueries;i++)
result[i] = 0;
for (int i=0;i<nQueries;i++){
for (int j=0;j<nStrings;j++){
if (queries[i].equals(entries[j]))
result[i]++;
}
}
for(int i=0;i<nQueries;i++)
System.out.println(result[i]);
}
}
import java.io.*;
import java.util.*;
class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int nStrings = sc.nextInt();
String entries[] = new String[nStrings];
for (int i=0;i<nStrings;i++)
entries[i] = sc.nextLine();
sc.nextLine();
int nQueries = sc.nextInt();
String queries[] = new String[nQueries];
for (int i=0;i<nQueries;i++)
queries[i] = sc.nextLine();
sc.nextLine();
int result[] = new int[nQueries];
for (int i=0;i<nQueries;i++)
result[i] = 0;
for (int i=0;i<nQueries;i++){
for (int j=0;j<nStrings;j++){
if (queries[i].equals(entries[j]))
result[i]++;
else
continue;
}
}
System.out.println(Arrays.toString(result));
}
}
谁能帮我解决这个问题输出不太正确但代码似乎是正确的。似乎在比较查询和条目时存在一些问题,因为针对此输入交换了特定索引中的正确元素
4
aba
baba
aba
xbxa
3
aba
xbxa
s
输出为 [1, 2, 0] 但应该是 [2,1,0]
您在错误的步骤中使用了 sc.nextLine(); 指令...您应该在 sc.nextInt();.
下面的代码将通过所有测试用例...在您的代码进行一些更改后。
import java.io.*;
import java.util.*;
class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int nStrings = sc.nextInt();
sc.nextLine();
String entries[] = new String[nStrings];
for (int i=0;i<nStrings;i++)
entries[i] = sc.nextLine();
int nQueries = sc.nextInt();
sc.nextLine();
String queries[] = new String[nQueries];
for (int i=0;i<nQueries;i++)
queries[i] = sc.nextLine();
int result[] = new int[nQueries];
for (int i=0;i<nQueries;i++)
result[i] = 0;
for (int i=0;i<nQueries;i++){
for (int j=0;j<nStrings;j++){
if (queries[i].equals(entries[j]))
result[i]++;
}
}
for(int i=0;i<nQueries;i++)
System.out.println(result[i]);
}
}