博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Q767 重构字符串
阅读量:6070 次
发布时间:2019-06-20

本文共 1031 字,大约阅读时间需要 3 分钟。

给定一个字符串S,检查是否能重新排布其中的字母,使得两相邻的字符不同。

若可行,输出任意可行的结果。若不可行,返回空字符串。

示例 1:

输入: S = "aab"输出: "aba"

示例 2:

输入: S = "aaab"输出: ""

注意:

  • S 只包含小写字母并且长度在[1, 500]区间内。
class Solution {    public String reorganizeString(String S) {        if (S.length() == 1)            return S;        int[] nums = new int[26];        char[] chs = S.toCharArray();        for (char c : chs)            nums[c - 'a']++;        StringBuilder sb = new StringBuilder();        char temp = 'A';        while (sb.length() < chs.length) {            int max = 0;            for (int i = 0; i < 26; i++) {                if (i == temp - 'a')                    continue;                if (nums[i] > 0)                    max = nums[i] > nums[max] || max == temp - 'a' ? i : max;            }            if (temp - 'a' == max || nums[max] == 0)                return "";            nums[max]--;            sb.append((char)(max + 'a'));            temp = (char)(max + 'a');        }        return sb.toString();    }}

转载于:https://www.cnblogs.com/WeichengDDD/p/10741170.html

你可能感兴趣的文章
epoll的lt和et模式的实验
查看>>
PHP通过引用传递参数
查看>>
正射影像(转载)
查看>>
JavaScript之数组学习
查看>>
实时交互平台流程与技术分析
查看>>
读写分离
查看>>
搭建非域AlwaysOn win2016+SQL2016
查看>>
JVM —— 移除永久代
查看>>
ElasticSearch 常用的查询过滤语句
查看>>
[React] Implement a Higher Order Component with Render Props
查看>>
uc浏览器视频缓存合并工具
查看>>
jce_policy安装【java密码扩展无限制权限策略文件安装】
查看>>
django 中的transaction(事务管理)
查看>>
Array properties in Spring Framework
查看>>
【转】移动端App测试实用指南
查看>>
IOS学习笔记07---C语言函数-printf函数
查看>>
MySQL Cluster 4个数据节点压力测试--mysqlslap工具压400W写
查看>>
Sonar入门(四):Eclipse集成Sonar
查看>>
为PartialView传递一个参数
查看>>
《GK101任意波发生器》升级固件发布(版本:1.0.2.build126)
查看>>