给定一个字符串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

Q767 重构字符串相关推荐

  1. 767 重构字符串_重构字符串型系统

    767 重构字符串 去年,我加入了一个项目,该项目从另一个软件公司接手,但未能满足客户需求. 如您所知,在"继承"的项目及其代码库中,有许多事情可以并且应该加以改进. 可悲的是(但 ...

  2. 767. 重构字符串

    767. 重构字符串 给定一个字符串S,检查是否能重新排布其中的字母,使得两相邻的字符不同. 若可行,输出任意可行的结果.若不可行,返回空字符串. 示例 1: 输入: S = "aab&qu ...

  3. 找出一个字符串中出现次数最多的字_487,重构字符串

    想了解更多数据结构以及算法题,可以关注微信公众号"数据结构和算法",每天一题为你精彩解答. 问题描述 给定一个字符串S,检查是否能重新排布其中的字母,使得两相邻的字符不同. 若可行 ...

  4. leetcode 767. 重构字符串(贪心算法)

    给定一个字符串S,检查是否能重新排布其中的字母,使得两相邻的字符不同. 若可行,输出任意可行的结果.若不可行,返回空字符串. 示例 1: 输入: S = "aab" 输出: &qu ...

  5. LeetCode 767. 重构字符串(堆)

    文章目录 1. 题目 2. 解题 1. 题目 给定一个字符串S,检查是否能重新排布其中的字母,使得两相邻的字符不同. 若可行,输出任意可行的结果.若不可行,返回空字符串. 示例 1: 输入: S = ...

  6. Leetcode每日一题:767.reorganize-string(重构字符串)

    思路:这道题还是有难度的,我只想到了如何判断它是否为空字符串,而不知道非空字符串时应该输出的结果,就是没有想到插入法:这道题可以通过举例子发现,如果最大的字符个数如果>(长度+1)/2,那么它是 ...

  7. leetcode 767. Reorganize String | 767. 重构字符串(贪心+分桶+26路归并)

    题目 https://leetcode.com/problems/reorganize-string/ 题解 分桶策略,和两个月之前做的 621.Task Scheduler 类似. 两个月之前看的答 ...

  8. LeetCode 767. 重构字符串

    思路: 贪心+大顶堆 1.统计每个字符出现次数,找到最多出现此处若大于(len+1)/2,则直接返回空. 2.按照出现次数直接建立大顶堆. 3.每次从大顶堆取两个字符,加入StringBuffer,以 ...

  9. byte数组转字符串_leetcode刷题844比较含退格的字符串(带代码解析,带知识点回顾)...

    844. 比较含退格的字符串 难度:简单 第一:简单浏览一下题目 给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果.# 代表退格字符. 注意:如果对空文 ...

最新文章

  1. iOS抓取日志方式(1)
  2. js中对String去空格
  3. 鸿蒙系统开发大会怎么参加,鸿蒙2.0来了?华为将举行开发者大会,做自己的手机系统!...
  4. vueJs开发音乐播放器第二篇(点击歌单跳出详情页)
  5. dateformat 返回类型_SpringBoot返回date日期格式化
  6. 什么叫云平台_为什么说云原生会成为未来企业技术变迁的趋势
  7. android全局计时_Android定时器AlarmManager
  8. 3.过滤——相关滤波(Correlation Filtering)_3
  9. 百度地图 截图java_[Java教程]百度地图API 简单使用
  10. springboot链接数据库的bug
  11. 在Java中调用与系统有关的剪切板Clipboard
  12. 购物车catslider简单的多商品分类滑动
  13. docker~aspnetcore2.0镜像缺少libgdiplus问题
  14. 阶段3 2.Spring_10.Spring中事务控制_11 spring5新特性的介绍
  15. Atitit sql执行计划
  16. Tecplot360 作图经验
  17. 调试和运行matlab代码(源程序)的技巧和教程
  18. 巨潮网怎么下载年报_如何下载上市公司财务报表?
  19. 实验吧-欢迎来到地狱题解
  20. windows下使用curl命令

热门文章

  1. CloudStack那些事儿2 : 主存储与二级存储
  2. Golang init函数执行顺序
  3. python3代码块
  4. 奇奇seo优化软件_seo优化软件如何选择
  5. Python之路--Django--form组件与model form组件
  6. python post提交数据
  7. Microsoft Azure Site Recovery (1) 安装VMM服务器代理
  8. 《敏捷可执行需求说明 Scrum提炼及实现技术》—— 1.1 从解决方案中甄别需求...
  9. Oracle 12c 简单的jdbc使用
  10. cisco *** 案例2