467. Unique Substrings in Wraparound String
2017-03-14 19:19
260 查看
简单DP题目,分成两部分处理,一部分是dp,另一部分是sum。dp[i]定义为包含p[i]时,拥有的可能性个数。如果p[i]与p[i+1]相连,则dp[i]=1+dp[i+1],否则,dp[i]为1。
但是sum的更新需要经一步判断,开辟了count一个map,避免重复计数。
但是sum的更新需要经一步判断,开辟了count一个map,避免重复计数。
class Solution { public: int findSubstringInWraproundString(string p) { if(p.size()==0) return 0; int sum=0; vector<int> dp(p.size(),0); map<char,int> count; dp[p.size()-1]=1; count[p[p.size()-1]]=1; sum=1; for(int i=p.size()-2;i>=0;i--) { if((p[i]-'a'+1)%26==p[i+1]-'a') dp[i]=1+dp[i+1]; else dp[i]=1; if(count[p[i]]<dp[i]) { sum=sum-count[p[i]]+dp[i]; count[p[i]]=dp[i]; } } return sum; } };
相关文章推荐
- 467. Unique Substrings in Wraparound String**
- 467. Unique Substrings in Wraparound String
- 467. Unique Substrings in Wraparound String
- 467. Unique Substrings in Wraparound String
- [leetcode 467]Unique Substrings in Wraparound String
- 467. Unique Substrings in Wraparound String
- 467. Unique Substrings in Wraparound String
- 467. Unique Substrings in Wraparound String
- 467. Unique Substrings in Wraparound String
- 467. Unique Substrings in Wraparound String
- 467. Unique Substrings in Wraparound String
- 467. Unique Substrings in Wraparound String
- 467. Unique Substrings in Wraparound String
- leetcode 467 c语言. Unique Substrings in Wraparound String
- LeetCode 467 Unique Substrings in Wraparound String (思维题)
- 467. Unique Substrings in Wraparound String
- leetcode Unique Substrings in Wraparound String
- 算法作业系列10——Unique Substrings in Wraparound String
- Unique Substrings in Wraparound String
- [LeetCode] Unique Substrings in Wraparound String 封装字符串中的独特子字符串