当前位置: 首页 > news >正文

day-08 构造限制重复的字符串

在这里插入图片描述
思路
首先统计每个字符的个数,然后从后向前按照题意添加字符

解题方法
从后向前添加字符:1.当前字符个数<=repeatLimit,直接添加
2.当前字符个数>repeatLimit,添加repeatLimit个,然后插入一个下一级字符

时间复杂度:O(n²)

空间复杂度:O(n)

Code

class Solution {public String repeatLimitedString(String s, int repeatLimit) {int[] cnt = new int[26];for(int i=0;i<s.length();i++){  //使用数组统计每次字符个数char c = s.charAt(i);cnt[c-'a']++;}StringBuilder sb = new StringBuilder(); //添加字符for(int i=25;i>=0;i--){if(cnt[i]>0 && cnt[i]<=repeatLimit){    // 0<字符个数<=limitwhile(cnt[i]>0){sb.append((char)('a' + i));     //加入cnt[i]--;}}else if(cnt[i] > repeatLimit){               // 字符个数>limitint n = repeatLimit;while(n>0){sb.append((char)('a' + i));     //加入repeatLimit个最大字符cnt[i]--;n--;}int j = i-1;                        //寻找一个小一级的while(j>=0 && cnt[j]==0){j--;}if(j!=-1){sb.append((char)('a' + j)); //找到了cnt[j]--;i++;    //重新插入上一个剩余的字母}else{          //没找到return sb.toString();}}//if--elseif}return sb.toString();}
}

注:依旧是参考答案的一天。。。。。。

http://www.lryc.cn/news/279678.html

相关文章:

  • Java锁的分类
  • SQL-分组查询
  • HBase 基础
  • android 11添加系统api供app使用
  • im6ull学习总结(三-3)freetype
  • 基于OpenCV的谷物颗粒识别
  • Aloha 机械臂的学习记录3——AWE:Pycharm运行代码记录
  • 开源协议概览
  • 分布式缓存
  • BSC/平衡记分卡
  • 论文阅读_训练大模型用于角色扮演
  • v-if控制div内容显示,克隆这个div但是v-if没有效果
  • flutter的状态管理学习
  • 开源免费虚拟化KVM的部署及其虚拟机资源变更、快照、克隆等常见运维操作
  • 阿里云git clone超时报错解决方法
  • 力扣刷题-二叉树-合并二叉树
  • 了解JavaScript 加密、混淆和生成签名
  • Go语言的指针(深度解析)
  • HTB-SAU
  • AI创新之美:AIGC探讨2024年春晚吉祥物龙辰辰的AI绘画之独特观点
  • Linux的SSH服务
  • MySQL连续案例续集
  • 【STM32读取HX711的函数】
  • MATLAB对数据隔位抽取和插值的几种方法
  • [NSSCTF Round#16 Basic] CPR
  • LAMMPS 文献:9 种熔化温度模拟方法的总结与比较:两相法、单相法以及缺陷法
  • JSR-107 (JCACHE)
  • kylin4.0.3升级问题
  • 【UML】第16篇 活动图
  • Python学习之路-函数进阶