博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
358. Rearrange String k Distance Apart
阅读量:6580 次
发布时间:2019-06-24

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

Given a non-empty string s and an integer k, rearrange the string such that the same characters are at least distance k from each other.

All input strings are given in lowercase letters. If it is not possible to rearrange the string, return an empty string "".

Example 1:

s = "aabbcc", k = 3Result: "abcabc"The same letters are at least distance 3 from each other.

 

Example 2:

s = "aaabc", k = 3 Answer: ""It is not possible to rearrange the string.

本题和task shceduler 一样的思路。

class Solution {    struct mycompare{        bool operator()(pair
& p1, pair
& p2){ if(p1.first == p2.first) return p1.second > p2.second;//字母升序 return p1.first < p2.first;//数字大小降序排列 } };public: string rearrangeString(string str, int k) { if(k == 0) return str; unordered_map
dict; for(char ch : str) dict[ch]++; int left = (int)str.size(); priority_queue
, vector
>, mycompare > pq; for(auto it = dict.begin(); it != dict.end(); it++){ pq.push(make_pair(it->second, it->first)); } string res; while(!pq.empty()){ vector
> cache; int count = min(k, left); for(int i = 0; i < count; i++){ if(pq.empty()) return ""; auto tmp = pq.top(); pq.pop(); res.push_back(tmp.second); if(--tmp.first > 0) cache.push_back(tmp); left--; } for(auto p : cache){ pq.push(p); } } return res; }};

 

 

Example 3:

s = "aaadbbcc", k = 2Answer: "abacabcd"Another possible answer is: "abcabcda"The same letters are at least distance 2 from each other.

转载于:https://www.cnblogs.com/jxr041100/p/7883017.html

你可能感兴趣的文章
hdu 3367 Pseudoforest(最大生成树)
查看>>
Spring mvc PostgreSQL 插入timestamp和int8
查看>>
一个人,一则故事,一份情愫,一个世界……
查看>>
ffserver联合ffmpeg建立媒体服务器
查看>>
下载稻草人下来刷新+gallery
查看>>
删除浏览器浏览器删除cookie方法
查看>>
微软URLRewriter.dll的url重写的简单使用(实现伪静态)
查看>>
leetcode -- Combination Sum II
查看>>
1z0-052 q209_7
查看>>
PIN码计算锦集
查看>>
[Unity3D]再次点击以退出程序
查看>>
架构师的97种习惯
查看>>
PHP 开发 APP 接口 学习笔记与总结 - XML 方式封装通信接口
查看>>
对一道编程题的后续思考
查看>>
IT基础架构规划方案之实际网络设计案例
查看>>
Navicat for MySQL 使用SSH方式链接远程数据库(二)
查看>>
poj 1274The Perfect Stall
查看>>
ibm BIP2276E: The flow includes a message flow of node type 'ComIbmFileReadNode'
查看>>
HDU 4720 Naive and Silly Muggles (外切圆心)
查看>>
垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想
查看>>