【问题标题】:Identify maximum distance element from String array in Java从Java中的String数组中识别最大距离元素
【发布时间】:2021-03-09 10:21:08
【问题描述】:

我有一个要求,我必须从数组中找到一个出现最大距离的元素。

如果有两个词条被同等搜索,则返回词条在第一次和最后一次搜索之间的距离最长。 给定以下数组 [‘C++’、‘Java’、‘C#’、‘C#’、‘Java’、‘Python’、‘C#’、‘Java’] 我们的程序应该返回“搜索最多的词是 Java”

注意:“Java”和“C#”都被搜索了 3 次,但程序应该返回“Java”作为距离 它的第一次和最后一次搜索之间的距离大于'C#'。

我尝试搜索,我可以找到距离(6)但无法返回值(Java)。

非常感谢大家的意见。我在 JS 中成功地做到了这一点。我只是在寻找 Java 帮助。我可以发布我的 JS 代码。

谢谢

【问题讨论】:

  • 请出示您的代码 :)

标签: java arrays arraylist hashmap


【解决方案1】:

这是我尝试过的代码 -

    String[] a ={"C++", "Java", "C#", "C#", "Java", "Python", "C#", "Java"};
    String val ="";
    
     int maxDist = 0;
       for(int i=0; i<a.length; i++)
       {
          int firstOcc = -1;
          int lastOcc = -1;
          
          for(int j=0; j<a.length; j++)
          {
             if(a[i] == a[j])
             {
                 //val=a[j];
                 if(firstOcc == -1)
                   firstOcc = lastOcc = j;
                 //val=a[j];
             }
                else
                {
                   lastOcc = j;
                 val=a[j];
             }
          }
          if(lastOcc - firstOcc > maxDist)
             maxDist = lastOcc - firstOcc;
            
       }
       System.out.println("Most searched term is " + val);
}

【讨论】:

  • 请将代码放在问题中,不要作为答案。并确保其显示格式正确
【解决方案2】:
class Wou {
public static int main(String args[]) {
    String s = "";
    for(String x: args)
        s+=x;
    int h = 0, p = -1;    //p is for storing distance and h is for maximum distance between two strings in String 's'.
    String word = "";
    int len = args.length;
    for(int i=0;i<len;i++) {
        int cc = s.lastIndexOf(args[i])-s.indexOf(args[i]);
        if (cc>h){
            h = cc;
            for(int j=len-1;j>=0;j--)
                if(args[i]==args[j]) {
                    p = j-i;
                    break;
                }
            word = args[i];
        }
        s.replaceAll(args[i],"");
    }
    System.out.println("Most searched term is "+word);
    return p;
}
}

【讨论】:

    猜你喜欢
    • 2015-11-13
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-09
    • 1970-01-01
    • 2016-12-28
    相关资源
    最近更新 更多