# 找到数组的中间位置

  1. 找到数组的中间位置

来源:力扣(LeetCode) 链接 (opens new window):https://leetcode.cn/problems/palindromic-substrings/ 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

github (opens new window)

# 问题

给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。

回文字符串 是正着读和倒过来读一样的字符串。

子字符串 是字符串中的由连续字符组成的一个序列。

具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串

输入:s = "abc"
输出:3
解释:三个回文子串: "a", "b", "c"

# 思路

中间位置等于两边和相等的位置

var pivotIndex = function (nums) {
  function calcLeft(index, nums) {
    if (index === 0) {
      return 0;
    }

    const left = nums.slice(0, index);
    return left.reduce((a, b) => a + b, 0);
  }

  function calcRight(index, nums) {
    if (index === nums.length - 1) {
      return 0;
    }

    const right = nums.slice(index + 1);
    return right.reduce((a, b) => a + b, 0);
  }

  for (let index = 0; index < nums.length; index++) {
    let left = calcLeft(index, nums);
    let right = calcRight(index, nums);

    if (left === right) {
      return index;
    }
  }

  return -1;
};

# 参考

陕ICP备20004732号-3