Q767 重构字符串
给定一个字符串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 重构字符串相关推荐
- 767 重构字符串_重构字符串型系统
767 重构字符串 去年,我加入了一个项目,该项目从另一个软件公司接手,但未能满足客户需求. 如您所知,在"继承"的项目及其代码库中,有许多事情可以并且应该加以改进. 可悲的是(但 ...
- 767. 重构字符串
767. 重构字符串 给定一个字符串S,检查是否能重新排布其中的字母,使得两相邻的字符不同. 若可行,输出任意可行的结果.若不可行,返回空字符串. 示例 1: 输入: S = "aab&qu ...
- 找出一个字符串中出现次数最多的字_487,重构字符串
想了解更多数据结构以及算法题,可以关注微信公众号"数据结构和算法",每天一题为你精彩解答. 问题描述 给定一个字符串S,检查是否能重新排布其中的字母,使得两相邻的字符不同. 若可行 ...
- leetcode 767. 重构字符串(贪心算法)
给定一个字符串S,检查是否能重新排布其中的字母,使得两相邻的字符不同. 若可行,输出任意可行的结果.若不可行,返回空字符串. 示例 1: 输入: S = "aab" 输出: &qu ...
- LeetCode 767. 重构字符串(堆)
文章目录 1. 题目 2. 解题 1. 题目 给定一个字符串S,检查是否能重新排布其中的字母,使得两相邻的字符不同. 若可行,输出任意可行的结果.若不可行,返回空字符串. 示例 1: 输入: S = ...
- Leetcode每日一题:767.reorganize-string(重构字符串)
思路:这道题还是有难度的,我只想到了如何判断它是否为空字符串,而不知道非空字符串时应该输出的结果,就是没有想到插入法:这道题可以通过举例子发现,如果最大的字符个数如果>(长度+1)/2,那么它是 ...
- leetcode 767. Reorganize String | 767. 重构字符串(贪心+分桶+26路归并)
题目 https://leetcode.com/problems/reorganize-string/ 题解 分桶策略,和两个月之前做的 621.Task Scheduler 类似. 两个月之前看的答 ...
- LeetCode 767. 重构字符串
思路: 贪心+大顶堆 1.统计每个字符出现次数,找到最多出现此处若大于(len+1)/2,则直接返回空. 2.按照出现次数直接建立大顶堆. 3.每次从大顶堆取两个字符,加入StringBuffer,以 ...
- byte数组转字符串_leetcode刷题844比较含退格的字符串(带代码解析,带知识点回顾)...
844. 比较含退格的字符串 难度:简单 第一:简单浏览一下题目 给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果.# 代表退格字符. 注意:如果对空文 ...
最新文章
- iOS抓取日志方式(1)
- js中对String去空格
- 鸿蒙系统开发大会怎么参加,鸿蒙2.0来了?华为将举行开发者大会,做自己的手机系统!...
- vueJs开发音乐播放器第二篇(点击歌单跳出详情页)
- dateformat 返回类型_SpringBoot返回date日期格式化
- 什么叫云平台_为什么说云原生会成为未来企业技术变迁的趋势
- android全局计时_Android定时器AlarmManager
- 3.过滤——相关滤波(Correlation Filtering)_3
- 百度地图 截图java_[Java教程]百度地图API 简单使用
- springboot链接数据库的bug
- 在Java中调用与系统有关的剪切板Clipboard
- 购物车catslider简单的多商品分类滑动
- docker~aspnetcore2.0镜像缺少libgdiplus问题
- 阶段3 2.Spring_10.Spring中事务控制_11 spring5新特性的介绍
- Atitit sql执行计划
- Tecplot360 作图经验
- 调试和运行matlab代码(源程序)的技巧和教程
- 巨潮网怎么下载年报_如何下载上市公司财务报表?
- 实验吧-欢迎来到地狱题解
- windows下使用curl命令
热门文章
- CloudStack那些事儿2 : 主存储与二级存储
- Golang init函数执行顺序
- python3代码块
- 奇奇seo优化软件_seo优化软件如何选择
- Python之路--Django--form组件与model form组件
- python post提交数据
- Microsoft Azure Site Recovery (1) 安装VMM服务器代理
- 《敏捷可执行需求说明 Scrum提炼及实现技术》—— 1.1 从解决方案中甄别需求...
- Oracle 12c 简单的jdbc使用
- cisco *** 案例2