题目:
解析:
代码:
javapublic int findSubstringInWraproundString(String ss) { int n = ss.length(); int[] dp = new int[n]; char[] s = ss.toCharArray(); for(int i = 0; i < n; i++) dp[i] = 1; for(int i = 1; i < n; i++){ if(s[i - 1] + 1 == s[i] || (s[i - 1] == 'z' && s[i] == 'a')) dp[i] += dp[i-1]; } //去重:把dp表中的字串重复的,只留最长的字串(hash表来建立映射关系) int[] hash = new int[26]; for(int i = 0; i < n; i++) hash[s[i]-'a'] = Math.max(hash[s[i]-'a'], dp[i]); //返回 int ret = 0; for(int x : hash) ret += x; return ret; }
动态规划子数组系列一>环绕字符串中唯一的子字符串
robin_suli2024-12-08 12:43
相关推荐
Voyager_421 分钟前
图像处理踩坑:浮点数误差导致的缩放尺寸异常与解决办法文艺倾年27 分钟前
【八股消消乐】手撕分布式协议和算法(基础篇)万岳科技系统开发1 小时前
从源码优化外卖配送系统:算法调度、智能推荐与数据分析应用信奥卷王4 小时前
[GESP202503 五级] 原根判断兮山与4 小时前
算法4.0nju_spy4 小时前
力扣每日一题(二)任务安排问题 + 区间变换问题 + 排列组合数学推式子初听于你4 小时前
高频面试题解析:算法到数据库全攻略翟天保Steven4 小时前
ITK-基于Mattes互信息的二维多模态配准算法代码对我眨眼睛4 小时前
226. 翻转二叉树 LeetCode 热题 HOT 100黑色的山岗在沉睡5 小时前
LeetCode 494. 目标和