给你一个下标从 0 开始的整数数组 nums
。
现定义两个数字的 串联 是由这两个数值串联起来形成的新数字。
15
和 49
的串联是 1549
。nums
的 串联值 最初等于 0
。执行下述操作直到 nums
变为空:
nums
中存在不止一个数字,分别选中 nums
中的第一个元素和最后一个元素,将二者串联得到的值加到 nums
的 串联值 上,然后从 nums
中删除第一个和最后一个元素。nums
的串联值上,然后删除这个元素。返回执行完所有操作后 nums
的串联值。
示例 1:
输入:nums = [7,52,2,4] 输出:596 解释:在执行任一步操作前,nums 为 [7,52,2,4] ,串联值为 0 。 - 在第一步操作中: 我们选中第一个元素 7 和最后一个元素 4 。 二者的串联是 74 ,将其加到串联值上,所以串联值等于 74 。 接着我们从 nums 中移除这两个元素,所以 nums 变为 [52,2] 。 - 在第二步操作中: 我们选中第一个元素 52 和最后一个元素 2 。 二者的串联是 522 ,将其加到串联值上,所以串联值等于 596 。 接着我们从 nums 中移除这两个元素,所以 nums 变为空。 由于串联值等于 596 ,所以答案就是 596 。
示例 2:
输入:nums = [5,14,13,8,12] 输出:673 解释:在执行任一步操作前,nums 为 [5,14,13,8,12] ,串联值为 0 。 - 在第一步操作中: 我们选中第一个元素 5 和最后一个元素 12 。 二者的串联是 512 ,将其加到串联值上,所以串联值等于 512 。 接着我们从 nums 中移除这两个元素,所以 nums 变为 [14,13,8] 。 - 在第二步操作中: 我们选中第一个元素 14 和最后一个元素 8 。 二者的串联是 148 ,将其加到串联值上,所以串联值等于 660 。 接着我们从 nums 中移除这两个元素,所以 nums 变为 [13] 。 - 在第三步操作中: nums 只有一个元素,所以我们选中 13 并将其加到串联值上,所以串联值等于 673 。 接着我们从 nums 中移除这个元素,所以 nums 变为空。 由于串联值等于 673 ,所以答案就是 673 。
可以设置俩个指针,分别指向数组的头和尾,,然后通过这俩个指针获取数组的值,然后编写一个函数用于合成前后数值,然后加一个判断数组里面是否剩一个,然后相加
- class Solution {
- public long findTheArrayConcVal(int[] nums) {
- long sum = 0;
- int start = 0;
- int end = nums.length - 1;
- while(start<end){
- sum+=numAdd(nums[start],nums[end]);
- start++;
- end--;
- }
- if(start == end){
- sum += nums[start];
- }
- return sum;
-
- }
- public int numAdd(int start,int end){
- String st = String.valueOf(start);
- String ed = String.valueOf(end);
- String result = start + "" + end;
- int num = Integer.parseInt(result);
- return num;
- }
- }