给你一个下标从 0 开始的整数数组
nums
。现定义两个数字的 串联 是由这两个数值串联起来形成的新数字。
- 例如,
15
和49
的串联是1549
。
nums
的 串联值 最初等于0
。执行下述操作直到nums
变为空:
- 如果
nums
中存在不止一个数字,分别选中nums
中的第一个元素和最后一个元素,将二者串联得到的值加到nums
的 串联值 上,然后从nums
中删除第一个和最后一个元素。- 如果仅存在一个元素,则将该元素的值加到
nums
的串联值上,然后删除这个元素。返回执行完所有操作后
nums
的串联值。
思路
按题意进行模拟,先计算每对元素 n u m s [ i ] nums[i] nums[i]和 n u m s [ n − i − 1 ] nums[n - i- 1] nums[n−i−1]的串联值,累加到结果中;如果数组长度为奇数,那么代表有单个元素剩余,将其累加到结果中
实现
class Solution {
public long findTheArrayConcVal(int[] nums) {
long res = 0L;
int n = nums.length;
for (int i = 0; i < (n + 1) / 2; i++){
if (i != n - i - 1){
long a = nums[i];
int b = nums[n - i - 1];
while (b > 0){
a *= 10;
b /= 10;
}
a += nums[n - i - 1];
res += a;
}else{
res += nums[i];
}
}
return res;
}
}