首页 > 其他分享 >3045. 统计前后缀下标对 II(困难)

3045. 统计前后缀下标对 II(困难)

时间:2024-04-01 18:49:06浏览次数:26  
标签:Node MyIntArray 下标 cur int II return array 3045

核心思想
字典树看灵神把
这里提供一个不同的版本
map存放了int[] 需重写equals 和 hashCode

class Node {
    Map<MyIntArray, Node> son = new HashMap<>();
    int cnt;
}

class MyIntArray{
    private final int[] array;

    MyIntArray(int[] array) {
        this.array = array;
    }

    public int[] getArray() {
        return array;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        MyIntArray that = (MyIntArray) o;
        return Arrays.equals(array, that.array);
    }

    @Override
    public int hashCode() {
        return Arrays.hashCode(array);
    }

}
class Solution {

    public long countPrefixSuffixPairs(String[] words) {
        long ans = 0;
        Node root = new Node();
        for (String S : words) {
            char[] s = S.toCharArray();
            int n = s.length;
            Node cur = root;
            for (int i = 0; i < n; i++) {
                int x = s[i] - 'a';
                int y = s[n - i - 1] - 'a';
                MyIntArray ints = new MyIntArray(new int[]{x, y});
                if (!cur.son.containsKey(ints)) {
                    cur.son.put(ints, new Node());
                }
                cur = cur.son.get(ints);
                ans += cur.cnt;
            }
            cur.cnt++;
        }
        return ans;
    }
}

标签:Node,MyIntArray,下标,cur,int,II,return,array,3045
From: https://www.cnblogs.com/ganyq/p/18109122

相关文章

  • 503. 下一个更大元素 II(中等)
    核心思想维护一个单调递减的单调栈(非严格)但是由于是循环的,做两次循环即可代码publicint[]nextGreaterElements(int[]nums){Deque<Integer>dq=newArrayDeque<>();int[]res=newint[nums.length];Arrays.fill(res,-1);for(int......
  • Django在Windows server IIS部署
    Django在WindowsserverIIS部署本文章转载于https://www.django.cn/article/show-21.html,详查看此文教程基于Windowsserver2012+Python3.6+IIS之上部署django的,同样适用于server2012之上的版本服务器和windows7以上的windows操作系统。提示:Python不要安装在windows用户目录下......
  • iis跨域设置
     iis跨域设置在IIS中设置跨域,可以通过以下步骤进行:打开IIS管理器,选择你想要配置的网站。123双击"IIS"部分下的"HTTP响应头"。在右侧的操作面板中,点击"添加..."按钮。在"名称"字段中输入"Access-Control-Allow-Origin",在"值"字段中......
  • 代码随想录算法训练营第二十五天(回溯2)|216. 组合总和 III、17. 电话号码的字母组合(JA
    文章目录216.组合总和III解题思路源码17.电话号码的字母组合解题思路源码216.组合总和III找出所有相加之和为n的k个数的组合,且满足下列条件:只使用数字1到9每个数字最多使用一次返回所有可能的有效组合的列表。该列表不能包含相同的组合两次,组合可......
  • 代码随想录算法训练营第二十七天(回溯3)|39. 组合总和、40. 组合总和 II、131. 分割回文
    文章目录39.组合总和解题思路源码40.组合总和II解题思路源码131.分割回文串解题思路源码39.组合总和给你一个无重复元素的整数数组candidates和一个目标整数target,找出candidates中可以使数字和为目标数target的所有不同组合,并以列表形式返回......
  • Django项目部署本地windows IIS(详细版)和static文件设置(页面样式正常显示)
    Django项目部署本地windowsIIS(详细版)和static文件设置(页面样式正常显示)原文链接:https://blog.csdn.net/hahahahanhanhan/article/details/134638020目录必要条件:一、下载并启用wfastcgi二、window安装IIS功能三、IIS管理器中添加网站1、复制项目2、复制wfastcgi.py文件......
  • Yii2架构简介
    Yii2架构简介Yii2是一个基于组件的PHP框架,它遵循MVC(Model-View-Controller)架构模式。以下是一个简化的Yii2应用程序的基本架构代码概述,以便你可以更好地理解其组成部分和工作原理。目录结构一个典型的Yii2应用程序的目录结构如下:/├──commands/#命......
  • 【二叉树】Leetcode 437. 路径总和 III【中等】
    路径总和III给定一个二叉树的根节点root,和一个整数targetSum,求该二叉树里节点值之和等于targetSum的路径的数目。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。示例1:**输入:**root=[10,5,-3,3,2,null,11,3,......
  • 代码随想录算法训练营第32天| 122.买卖股票的最佳时机 II、55. 跳跃游戏、45.跳跃游戏
    122.买卖股票的最佳时机II题目链接:买卖股票的最佳时机II题目描述:给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出......
  • java数据结构与算法刷题-----LeetCode95. 不同的二叉搜索树 II
    java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846文章目录分治回溯+记忆化搜索分治回溯+记忆化搜索卡特兰数,例如对于n个进栈元素,有多少种出栈顺序,......