CodingBat Array-maxMirror

时间:2016-05-09 19:21:34

标签: java arrays

我正在尝试从CodingBat解决这个问题。

  

我们会说数组中的“镜像”部分是一组连续的   元素,如数组中的某个位置,相同的组出现在   相反的顺序。例如,{1,2,3,8中最大的镜像部分   9,3,2,1}是长度3({1,2,3}部分)。返回的大小   在给定数组中找到的最大镜像部分。

     

maxMirror([1,2,3,8,9,3,2,1])→3 maxMirror([1,2,1,4])→3   maxMirror([7,1,2,9,7,2,1])→2

public int maxMirror(int[] nums)
{
  int count = 0;
  int max = 0;
  int min = 0;

  String abc = "";

  for(int i=0; i<nums.length; i++)
  {
   abc += nums[i];
  }//

  for(int i=0, k = abc.length(); i<abc.length(); i++, k--)
  {
    for(int j=i, l = abc.length()-i; j<abc.length(); j++, l--)
    {
      if(abc.substring(i,j).equals(abc.substring(k,l)))
        min = abc.substring(i,j).length();

        if(min > max)
        max = min;

     }
  }
  count = max;

  return count;

}

我认为将数组的所有元素插入字符串是一个非常好的主意,因为字符串类有自己的函数,如substring。

我认为我对这个问题的算法简单,灵活,可靠,但它不像我想象的那样有效。我收到异常错误,抱怨字符串的边界。

我该怎么办?

0 个答案:

没有答案