首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hackerrank稀疏数组

Hackerrank稀疏数组
EN

Stack Overflow用户
提问于 2020-08-02 15:39:43
回答 1查看 376关注 0票数 0
代码语言:javascript
复制
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));
    }
}

有人能帮我解决这个问题吗?输出不是很正确,但是代码似乎是正确的。似乎在比较查询和条目时存在一些问题,因为这些查询和条目交换了特定索引中的正确元素,即用于此输入的元素。

代码语言:javascript
复制
4
aba
baba
aba
xbxa
3
aba
xbxa
s

输出是1,2,0,但应该是2,1,0

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-02 15:59:34

你在错误的步骤上使用sc.nextLine();指令.您应该在sc.nextInt();之后使用它。

下面的代码将通过所有的测试用例..。在你的代码发生了一些变化之后。

代码语言:javascript
复制
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]);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63217922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档