LeetCode 1930. 长度为 3 的不同回文子序列(计数)
文章目录
- 1. 题目
- 2. 解题
1. 题目
给你一个字符串 s ,返回 s 中 长度为 3 的不同回文子序列 的个数。
即便存在多种方法来构建相同的子序列,但相同的子序列只计数一次。
回文 是正着读和反着读一样的字符串。
子序列 是由原字符串删除其中部分字符(也可以不删除)且不改变剩余字符之间相对顺序形成的一个新字符串。
例如,"ace" 是 "abcde" 的一个子序列。
示例 1:
输入:s = "aabca"
输出:3
解释:长度为 3 的 3 个回文子序列分别是:
- "aba" ("aabca" 的子序列)
- "aaa" ("aabca" 的子序列)
- "aca" ("aabca" 的子序列)示例 2:
输入:s = "adc"
输出:0
解释:"adc" 不存在长度为 3 的回文子序列。示例 3:
输入:s = "bbcbaba"
输出:4
解释:长度为 3 的 4 个回文子序列分别是:
- "bbb" ("bbcbaba" 的子序列)
- "bcb" ("bbcbaba" 的子序列)
- "bab" ("bbcbaba" 的子序列)
- "aba" ("bbcbaba" 的子序列)提示:3 <= s.length <= 10^5s 仅由小写英文字母组成
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/unique-length-3-palindromic-subsequences
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
- 对每个字符左右的字符进行计数
- 遍历中间字符,同时查找左右两侧的26个字符是否都存在
- 两侧都存在则将字符串编码成26进制数存入哈希set,最后返回哈希个数
class Solution {public:int countPalindromicSubsequence(string s) {vector<int> L(26), R(26);L[s[0]-'a']++;for(int i = 2; i < s.size(); ++i)R[s[i]-'a']++;unordered_set<int> set;for(int i = 1; i < s.size()-1; ++i){for(int j = 0; j < 26; ++j){if(L[j] && R[j])set.insert((s[i]-'a')*26+j);}L[s[i]-'a']++;R[s[i+1]-'a']--;}return set.size();}
};
484 ms 12.9 MB C++
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
LeetCode 1930. 长度为 3 的不同回文子序列(计数)相关推荐
- 【leetcode】【动态规划】最长回文子序列
[leetcode]最长回文子序列 题目 代码 leetcode题目地址 题目 给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度. 子序列定义为:不改变剩余字符顺序的情况下,删除某些 ...
- 算法62---最长回文子序列长度(子串)、回文子序列总共个数(子串)【动态规划】...
参考链接:https://www.cnblogs.com/AndyJee/p/4465696.html 一.题目:最长回文子序列长度 给定字符串,求它的最长回文子序列长度.回文子序列反转字符顺序后仍然 ...
- 动态数组怎么定义_动态规划最长回文子序列
动态规划|最长回文子序列 今天一起来学习Leetcode第 516 题:最长回文子序列. 题目描述 题目分析 首先回文字符串指的是形如"a","aa",''ab ...
- 【代码训练营】day56 | 647. 回文子串 516.最长回文子序列
所用代码 java 回文子串 LeetCode 647 题目链接:回文子串 LeetCode 647 - 中等 思路 dp[i] [j]:[i, j]子串是否是回文子串,是回文就是true 递推公式: ...
- 动态规划练习——最长回文子序列
题目 力扣原题链接:最长回文子序列 给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度. 子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列. 示例 ...
- LeetCode 2002. 两个回文子序列长度的最大乘积(状态压缩+枚举状态子集+预处理)
文章目录 1. 题目 2. 解题 2.1 超时 2.2 预处理优化 1. 题目 给你一个字符串 s ,请你找到 s 中两个 不相交回文子序列 ,使得它们长度的 乘积最大 . 两个子序列在原字符串中如果 ...
- LeetCode 516. 最长回文子序列(动态规划)
1. 题目 给定一个字符串s,找到其中最长的回文子序列.可以假设s的最大长度为1000. 示例 1: 输入: "bbbab" 输出: 4 一个可能的最长回文子序列为 "b ...
- leetcode - 516. 最长回文子序列
516. 最长回文子序列 -------------------------------------------- 给定一个字符串s,找到其中最长的回文子序列.可以假设s的最大长度为1000. 示例 ...
- Leetcode 516.最长回文子序列
Time: 20190906 Type: Medium 题目描述 给定一个字符串s,找到其中最长的回文子序列.可以假设s的最大长度为1000. 示例 1: 输入: "bbbab" ...
最新文章
- redis集合数据过期_如何从Redis中的集合中自动删除过期的密钥?
- C语言中auto,register,static,const,volatile的区别
- Google Maps Android API V2使用及问题解决
- rabbitmq python amqp user_python 与rabbitmq
- Android 精品资源(一) 2018年3月23日 星期五
- CodeForces - 1344D Monopole Magnets(dfs)
- Spring5参考指南:Environment
- mysql 无法存储joda time的datetime类型
- nodejs异步测试_异步过程的自动化测试
- linux内核运行关系图,一张图看懂Linux内核运行交互关系
- hibernate 链接mysql数据库配置文件,hibernate数据库连接文件(MySql)
- 阿里五年晋升三次,选择真的大于努力?
- redis info 信息
- 电商如何做企业总体架构?
- ant design 上传+自定义上传
- word制作多级标题目录
- ImageMagicK之合成图片
- 【英语演讲】Simulation Test 模拟测试
- [物理学与PDEs]第4章习题1 反应力学方程组形式的化约 - 动量方程与未燃流体质量平衡方程...
- 科研TCO-PEG-Chondroitin sulfate;TCO-PEG-CS;反式环辛烯-聚乙二醇-硫酸软骨素
热门文章
- 最近公共祖先 python_求二叉搜索树的最近公共祖先
- oracle对查询结果求和_Oracle 闪回技术详解
- 2台电脑一根网线传文件_「教程」如何快速的在两台电脑间传输大文件?
- 中通知设置响铃_主动切断干扰源——手机“通知”精细化管理
- shell 删除了hdfs 文件_从零开始学大数据(三) Shell操作HDFS文件系统-中
- 【SSL】HTTPS配置全过程
- 【spider】Tesseract机器视觉实现验证码识别
- 安装mysql后在安装目录下只有my-default.ini没有my.ini文件 解决-The MySQL server is running with the --secure-file-priv
- 机器学习各算法思想(极简版)
- 文本分析软件_十大针对机器学习的文本注释工具与服务,你选哪个?