Java实现 LeetCode 767 重构字符串(ASCII的转换)
2024-08-23 09:49:11
767. 重构字符串
给定一个字符串S,检查是否能重新排布其中的字母,使得两相邻的字符不同。
若可行,输出任意可行的结果。若不可行,返回空字符串。
示例 1:
输入: S = “aab”
输出: “aba”
示例 2:
输入: S = “aaab”
输出: “”
注意:
S 只包含小写字母并且长度在[1, 500]区间内。
class Solution {
public String reorganizeString(String S) {
if (S == null || S.length() == 0) {
return "";
}
int length = S.length();
int[] counts = new int[26];
for (char c : S.toCharArray()) {
counts[c - 'a'] += 100;
}
for (int i = 0; i < 26; ++i) {
counts[i] += i;
}
Arrays.sort(counts);
char[] result = new char[length];
int t = 1;
for (int code : counts) {
int ct = code / 100;
char ch = (char) ('a' + (code % 100));
if (ct > (length + 1) / 2) {
return "";
}
for (int i = 0; i < ct; ++i) {
if (t >= length) {
t = 0;
}
result[t] = ch;
t += 2;
}
}
return String.valueOf(result);
}
}
最新文章
- Java易混淆的概率:成员变量、类变量、实例变量、局部变量
- Spring boot 打成jar包问题总结
- 探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法
- 解决oralce 11g dg搭建报错:ORA-16664、ORA-16714、ORA-16810问题--转
- 移动金融APP分析
- ava SE ---逻辑运算符
- IDHttp的基本用法(转)
- ubuntu 使用sudo apt-get update 出现 被配置多次导致无法升级错误解决方法
- emWin仪表界面设计,含uCOS-III和FreeRTOS两个版本
- jstack命令
- C#压缩文件,C#压缩文件夹,C#获取文件
- Android文件数据存储
- 剑指offer——python【第28题】数组 中出现次数超过一半的数字
- Python3实现Win10桌面背景自动切换
- cglib动态代理是通过继承父类的方式进行代理的 不是通过接口方式进行动态代理的 因此可以对普通的类进行代理
- C++中的class (1)
- keras系列︱图像多分类训练与利用bottleneck features进行微调(三)
- whistle--全新的跨平台web调试工具
- 防止putty的鼠标右键错误粘贴
- ie兼容placeholder效果