358. Rearrange String k Distance Apart
2024-08-29 10:13:53
/*
* 358. Rearrange String k Distance Apart
* 2016-7-14 by Mingyang
*/
public String rearrangeString(String str, int k) {
int length = str.length();
int[] count = new int[26];
int[] valid = new int[26];
for(int i=0;i<length;i++){
count[str.charAt(i)-'a']++;
}
StringBuilder sb = new StringBuilder();
for(int index = 0;index<length;index++){
int candidatePos = findValidMax(count, valid, index);
if( candidatePos == -1) return "";
count[candidatePos]--;
valid[candidatePos] = index+k;
sb.append((char)('a'+candidatePos));
}
return sb.toString();
}
private int findValidMax(int[] count, int[] valid, int index){
int max = Integer.MIN_VALUE;
int candidatePos = -1;
for(int i=0;i<count.length;i++){
if(count[i]>0 && count[i]>max && index>=valid[i]){
max = count[i];
candidatePos = i;
}
}
return candidatePos;
}
最新文章
- [ACM_动态规划] 嵌套矩形
- 如何处理Android Studio 上面关于 update 和 commit 小箭头的消失
- LaTex Font Size 字体大小命令
- Ext.data.Store动态修改url
- arcgis for android访问arcgis server上自己制作部署的地图服务
- Javascript禁止网页复制粘贴效果,或者复制时自动添加来源信息
- Qt5如何设置静态编译,解决生成的可执行文件打开出错问题
- hadoop配置及无法移动文件到hdfs故障解析
- 杭电oj find your present (2)
- Cloudera Hadoop 5&; Hadoop高阶管理及调优课程(CDH5,Hadoop2.0,HA,安全,管理,调优)
- C# Dapper 轻量ORM调试对SQLServer
- 福州大学软件工程1916 | W班 作业成绩排名汇总
- 使用css控制文字显示几行并且剩余部分隐藏(移动端和PC端同样适用)
- [转]IIS 日志记录时间和实际时间 不一样
- excel 添加换行符,去除换行符:
- Laravel框架 -- Validator 可用的验证规则
- nodejs之util工具
- sap server笔记
- tensorflow 教程 文本分类 IMDB电影评论
- 【ZOJ】3785 What day is that day? ——KMP 暴力打表找规律