leetcode算法题--环绕字符串中唯一的子字符串★
原题链接:https://leetcode-cn.com/problems/unique-substrings-in-wraparound-string/
思路是dp数组保存以26个字母为结尾的子字符串的最长长度,之后将所有数组累加起来即可。举个例子,对于zab就有dp[z]=1,dp[a]=2,dp[b]=3,dp[z]中是z,dp[a]中是a,za,dp[b]中是zab,ab,b,加起来为6就是正确答案,这里我们用map来作为dp数组。
map[key]=value,key就是26个字母,value就是表示以key为结尾的子字符串最长长度
状态转移
map[i]=max(map[i],count) count就是以i为结尾的子字符串的长度,使用max取最长的
代码:
int findSubstringInWraproundString(string p) {int len=p.size();if(len==0) return 0;map<char,int> map;int count=1;map[p[0]]=count;for(int i=1;i<len;i++){if(p[i]-p[i-1]==1||p[i-1]=='z'&&p[i]=='a'){count++;}else{count=1;}map[p[i]]=max(map[p[i]],count);}int sum=0;for(auto iter=map.begin();iter!=map.end();iter++){sum+=iter->second;}return sum;}
如果题目中与26个字母都有关,把字母作为动态规划的索引是非常好的方式,并且需要找到好的状态转移!
leetcode算法题--环绕字符串中唯一的子字符串★相关推荐
- 【宫水三叶的刷题日记】467. 环绕字符串中唯一的子字符串(中等)
题目描述 这是 LeetCode 上的 467. 环绕字符串中唯一的子字符串 ,难度为 中等. Tag : 「线性 DP」.「树状数组」 把字符串 s 看作是 "abcdefghijklmn ...
- leetcode - 467. 环绕字符串中唯一的子字符串
解题思路:dp[i]表示以第i个字母结尾的最长的子字符串的长度.那么字符串P的不同子字符串的数量为dp[0] + dp[1] + - + dp[25] (从a一直加到z).循环P中的每一个字符,不断更 ...
- LeetCode 467. 环绕字符串中唯一的子字符串(思维转换)
1. 题目 把字符串 s 看作是"abcdefghijklmnopqrstuvwxyz"的无限环绕字符串,所以 s 看起来是这样的:"-zabcdefghijklmnop ...
- mfc 找到字符串中字符_[LeetCode] 467. 环绕字符串中唯一的子字符串
题目链接: https://leetcode-cn.com/problems/unique-substrings-in-wraparound-string 难度:中等 通过率:35.6% 题目描述: ...
- leetcode 467. Unique Substrings in Wraparound String | 467. 环绕字符串中唯一的子字符串(动态规划)
题目 https://leetcode.com/problems/unique-substrings-in-wraparound-string/ 题解 1.dp 超时版本 class Solution ...
- php判断是字符串类型,php使用strpos判断字符串中数字类型子字符串出错的解决方法 原创...
本文实例讲述了php使用strpos判断字符串中数字类型子字符串出错的解决方法.分享给大家供大家参考,具体如下: 一.问题: 最近的开发中在程序代码里有一个随机数是否在给定字符串里的判断,我用了如下的 ...
- 5918. 统计字符串中的元音子字符串
5918. 统计字符串中的元音子字符串 子字符串 是字符串中的一个连续(非空)的字符序列. 元音子字符串 是 仅 由元音('a'.'e'.'i'.'o' 和 'u')组成的一个子字符串,且必须包含 全 ...
- php的strpos不支持数字,php使用strpos判断字符串中数字类型子字符串出错的解决方法 原创...
php使用strpos判断字符串中数字类型子字符串出错的解决方法 原创 这里有新鲜出炉的 PHP 面向对象编程,程序狗速度看过来! PHP 开源脚本语言 PHP(外文名: Hypertext Prep ...
- java 统计字符串中字符个数_java实现统计字符串中字符及子字符串个数的方法示例...
本文实例讲述了java实现统计字符串中字符及子字符串个数的方法.分享给大家供大家参考,具体如下: 这里用java实现统计字符串中的字符(包括数字.大写字母.小写字母以及其他字符)个数,以及字符串的子字 ...
最新文章
- Chrome开发,debug的使用方法。
- python3 线程_threading模块
- 多核 CPU 和多个 CPU 有何区别
- Firewalld,iptables概述(netfilter和Firewalld,iptables三者之间的关系,四表五链,Firewalld防火墙的配置方发,SNAT,DNAT了解)
- short 用equals_Java Short类equals()方法的示例
- [转]使用Python MrJob的MapReduce实现电影推荐系统
- 天天工作拧螺丝,怎么突破瓶颈?
- 新手学习selenium路线图(老司机亲手绘制)-学前篇(转上海悠悠)
- 数据透视表练习表格_将高级电子表格导出与PHP结合起来以创建数据透视表
- 巴菲特致股东的一封信:1991年
- 无限能,传统中药饮片的蜕变
- [原创]服装鞋帽企业配送中心优化方案 WMS仓储管理系统
- RMAN CROSSCHECK命令 说明
- jk触发器的异步置位端和异步复位端的表示方法
- C语言中最难啃的硬骨头非这三个莫属
- 【一致性仿真】Group-Bipartite Consensus in the Networks With Cooperative-Competitive Interactions
- 读书百客:《长恨歌》赏析
- 老男孩Linux 网络班学习-决心书
- 包围曝光(Bracket Exposure)
- h5应用缓存及收藏时Icon显示
热门文章
- python官网没有中文-python 检查是否为中文字符串的方法
- python语言入门pdf-python语言入门
- python小程序源代码-Python小项目:开发一个动态时钟小程序(附源码)
- python入门指南百度云-Python入门指南
- 学python用什么系统好-初次接触python,怎么样系统的自学呢?
- python 命令-Django 基本命令
- Pycharm打开之后一直在扫描,进不去
- Juyter notebook 出现“localhost 目前无法处理此请求”
- mybatis之ResultMap
- LeetCode Roman to Integer(罗马数字转换)