0

我正在编写一个java代码来处理我遇到的信号,如下所述:

输入:字符串数组 arr1 和 arr2。输出请求:字符串数组 arr3

      String[] arr1= {"A", "c", "c",  "", "", "c", "c", "B", "", "c","c", "", "A",  "", "", "B", "B", "A"};
      String[] arr2= {"2", "3", "3",  "", "", "2", "1", "3", "", "2","3", "", "2",  "", "", "3", "2", "3"};
      String[] arr3= {"11", "",  "",  "", "", "",  "",  "8", "", "",  "", "", "2",  "", "", "3", "2", "3"};

算法: 1. arr1 有 4 种类型的元素:“A”、“B”和“c”和“”。

  1. arr2 在 arr1 中的“A”、“B”和“c”的对应索引处有一些数字字符串,如“2”、“3”等,arr1 中的元素“”在 arr2 中具有对应的元素“”。

  2. arr3 由 arr1 和 arr2 组成。

  3. arr3 的数字字符串仅对应于 arr1 中的“A”、“B”元素。

  4. 在 arr3 中,第一个数字字符串“11”来自“2”、“3”、“3”、“”、“”、“2”、“1”的总数。这些是从“A”到“B”的元素(包括“A”,不包括“B”)。“8”来自“3”、“”、“2”、“3”、“”的总和。下一个“2”来自“2”、“”、“”的总和。最后很明显,“3”、“2”、“3”分别来自“3”、“2”、“3”。

    作为编程和 java 的新手,在上述情况下我需要帮助。感谢期待。

4

1 回答 1

3

我建议您将 arr2 和 arr3 声明为 int 数组,这将帮助您轻松进行任何数学运算。

谈到解决方案的方法,我们可以做的是维护所有 3 个数组的通用索引,然后对 arr1 进行检查,并对 arr2 和 arr3 执行必要的操作。

String[] arr1 = {"A", "c", "c",  "", "", "c", "c", "B", "", "c","c", "", "A",  "", "", "B", "B", "A"};
int[] arr2 = {2, 3, 3, 0, 0, 2, 1, 3, 0, 2, 3, 0, 2, 0, 0, 3, 2, 3};

int len = arr1.length, sum=0;
int[] arr3 = new int[len];

for(int i=0; i<len; i++){
    arr3[i] = 0;
}

for(int i = 0 ; i < len ; i++ ){
    sum=0;
    if(arr1[i].equals("A") || arr1[i].equals("B")){
        sum += arr2[i];
        int j=0;
        for(j = i+1; j < len && !arr1[j].equals("A") && !arr1[j].equals("B"); j++){
            sum += arr2[j];
        }
        arr3[i] = sum;
        i= j-1 ;
    }
}

上面的代码现在用必要的值填充 arr3,您可以使用Integer.toString()每个值上的方法将它们更改为字符串。

如果您需要任何进一步的说明,请告诉我。快乐编码;)

于 2015-07-31T16:23:30.217 回答