第 471 场周赛Q2——3713. 最长的平衡子串 I
题目链接3713. 最长的平衡子串 I中等算法原理对应力扣题解解法暴力枚举853ms击败12.10%时间复杂度O(N³)①若字符串为空直接返回0②初始化最大平衡子串长度maxlen为1因为单个字符自身平衡③暴力枚举所有子串外层循环 i 遍历每个字符作为子串的起始位置内层循环 j 从 i 开始遍历到字符串末尾作为子串的结束位置④字符频次统计对每个子串都初始化一个统计数组nums大小为26下标对应26个英文小写字母值对应出现次数⑤条件验证以第一个计数为基准遍历列表如果有与基准不同的就是不平衡的⑥更新最大长度如果当前子串符合条件就去更新最大值最后返回Java代码class Solution { public int longestBalanced(String s) { int ns.length(); if(n0) return 0; int maxlen1; for(int i0;in;i){ int[] numsnew int[26]; for(int ji;jn;j){ int xs.charAt(j)-a; nums[x]; ListInteger countsnew ArrayList(); for(int k0;k26;k){ if(nums[k]0) counts.add(nums[k]); } boolean isBalancedtrue; int firstcounts.get(0); for(int cnt:counts){ if(cnt!first){ isBalancedfalse; break; } } if(isBalanced){ maxlenMath.max(maxlen,j-i1); } } } return maxlen; } }
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2441281.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!