博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
#Leetcode# 767. Reorganize String
阅读量:5262 次
发布时间:2019-06-14

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

 

Given a string S, check if the letters can be rearranged so that two characters that are adjacent to each other are not the same.

If possible, output any possible result.  If not possible, return the empty string.

Example 1:

Input: S = "aab"Output: "aba"

Example 2:

Input: S = "aaab"Output: ""

Note:

  • S will consist of lowercase letters and have length in range [1, 500].

代码:

class Solution {public:    string reorganizeString(string S) {        int len = S.length();        string ans = "";        unordered_map
mp; priority_queue
> q; for(int i = 0; i < len; i ++) mp[S[i]] ++; for(auto i : mp) { if(i.second > (len + 1) / 2) return ans; else q.push({i.second, i.first}); } while (q.size() >= 2) { auto t1 = q.top(); q.pop(); auto t2 = q.top(); q.pop(); ans.push_back(t1.second); ans.push_back(t2.second); if (--t1.first > 0) q.push(t1); if (--t2.first > 0) q.push(t2); } if (q.size() > 0) ans.push_back(q.top().second); return ans; }};

  优先队列

 

转载于:https://www.cnblogs.com/zlrrrr/p/10340633.html

你可能感兴趣的文章
HDU-1255 覆盖的面积 (扫描线)
查看>>
css3学习01
查看>>
【USACO】 奶牛会展
查看>>
ActiveMQ笔记之点对点队列(Point-to-Point)
查看>>
继承和多态
查看>>
Dijkstra+计算几何 POJ 2502 Subway
查看>>
修复IE不能执行JS的方法
查看>>
程序员究竟该如何提高效率zt
查看>>
希尔排序法(缩小增量法)
查看>>
PHP编程基础学习(一)——数据类型
查看>>
MongoDB-JAVA-Driver 3.2版本常用代码全整理(2) - 查询
查看>>
NPOI处理Word文本中上下角标
查看>>
Android笔记 Handler
查看>>
如何阅读大型前端开源项目的源码(转)
查看>>
java.util.Arrays类详解
查看>>
idea搭建tocmat
查看>>
NYOJ-626-intersection set(二分查找)
查看>>
项目管理之路(1):初步踏入项目管理
查看>>
Java 中 静态方法与非静态方法的区别
查看>>
echarts饼图显示百分比
查看>>