一、题目
二、解题步骤
下面是用动态规划的思想解决这道题的过程,相信各位小伙伴都能看懂并且掌握这道经典的动规题目滴。
三、参考代码
class Solution {
public:int findSubstringInWraproundString(string s) {int n=s.size();vector<int> dp(n,1);int ret=0;for(int i=1;i<n;i++){if(s[i]==s[i-1]+1||(s[i-1]=='z'&&s[i]=='a')){dp[i]+=dp[i-1];}}//去重int arr[26]={0};for(int i=0;i<n;i++){arr[s[i]-'a']=max(dp[i],arr[s[i]-'a']);}for(const auto& e:arr){ret+=e;}return ret;}
};